{"id":121,"date":"2026-10-12T12:19:41","date_gmt":"2026-10-12T12:19:41","guid":{"rendered":"https:\/\/rockmech.polito.it\/?page_id=121"},"modified":"2026-11-06T14:09:19","modified_gmt":"2026-11-06T14:09:19","slug":"home","status":"publish","type":"page","link":"https:\/\/rockmech.polito.it\/","title":{"rendered":"Home"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<style>\n\/* =========================================================\n   ROCKMECH HOME\n   ========================================================= *\/\n\n.rm-home {\n    --rm-blue: #123b5d;\n    --rm-blue-2: #23647f;\n    --rm-light-blue: #eaf3f8;\n    --rm-orange: #d97828;\n    --rm-text: #27313a;\n    --rm-muted: #62717d;\n    --rm-border: #dce5ea;\n\n    max-width: 1150px;\n    margin: 0 auto;\n    color: var(--rm-text);\n    font-family: inherit;\n}\n\n.rm-home *,\n.rm-home *::before,\n.rm-home *::after {\n    box-sizing: border-box;\n}\n\n\/* =========================================================\n   LOGO VIDEO\n   ========================================================= *\/\n\n.rm-home-logo {\n    position: relative;\n    overflow: hidden;\n    margin-bottom: 38px;\n    padding: 22px 30px 31px;\n    background: linear-gradient(180deg, #fff, #f4f8fa);\n    border: 1px solid var(--rm-border);\n    border-radius: 14px;\n    text-align: center;\n    box-shadow: 0 8px 30px rgba(24,52,72,.08);\n}\n\n.rm-home-logo::before,\n.rm-home-logo::after {\n    content: \"\";\n    position: absolute;\n    border: 28px solid rgba(18,59,93,.035);\n    border-radius: 50%;\n}\n\n.rm-home-logo::before {\n    top: -130px;\n    right: -60px;\n    width: 300px;\n    height: 300px;\n}\n\n.rm-home-logo::after {\n    bottom: -155px;\n    left: -70px;\n    width: 310px;\n    height: 310px;\n}\n\n.rm-home-logo video {\n    position: relative;\n    z-index: 1;\n    display: block;\n    width: 100%;\n    max-width: 820px;\n    max-height: 420px;\n    margin: 0 auto;\n    background: #fff;\n    object-fit: contain;\n}\n\n\/* =========================================================\n   MAIN TWO-COLUMN AREA\n   ========================================================= *\/\n\n.rm-home-main {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) 380px;\n    gap: 32px;\n    align-items: start;\n    margin-bottom: 38px;\n}\n\n\/* =========================================================\n   INTRODUCTION\n   ========================================================= *\/\n\n.rm-home-intro {\n    margin-bottom: 28px;\n}\n\n.rm-home-label {\n    display: inline-block;\n    margin-bottom: 9px;\n    color: var(--rm-orange);\n    font-size: 12px;\n    font-weight: 800;\n    letter-spacing: .14em;\n    text-transform: uppercase;\n}\n\n.rm-home-intro h1 {\n    margin: 0 0 17px;\n    color: var(--rm-blue);\n    font-size: clamp(28px, 3.8vw, 40px);\n    line-height: 1.2;\n}\n\n.rm-home-intro p {\n    margin: 0 0 15px;\n    color: var(--rm-muted);\n    font-size: 16px;\n    line-height: 1.7;\n}\n\n.rm-home-intro strong {\n    color: var(--rm-blue);\n}\n\n\/* =========================================================\n   RESEARCH AREAS\n   ========================================================= *\/\n\n.rm-home-areas {\n    display: grid;\n    grid-template-columns: repeat(2, minmax(0, 1fr));\n    gap: 14px;\n}\n\n.rm-home-area {\n    position: relative;\n    min-height: 145px;\n    padding: 22px 18px 20px;\n    overflow: hidden;\n    background: #fff;\n    border: 1px solid var(--rm-border);\n    border-radius: 9px;\n    text-align: center;\n    box-shadow: 0 4px 16px rgba(24,52,72,.06);\n    transition:\n        transform .22s ease,\n        box-shadow .22s ease,\n        border-color .22s ease;\n}\n\n.rm-home-area:hover {\n    transform: translateY(-4px);\n    border-color: rgba(18,59,93,.3);\n    box-shadow: 0 10px 24px rgba(24,52,72,.12);\n}\n\n.rm-home-area::after {\n    content: \"\";\n    position: absolute;\n    right: 31%;\n    bottom: 0;\n    left: 31%;\n    height: 3px;\n    background: var(--rm-orange);\n}\n\n.rm-area-number {\n    display: block;\n    margin-bottom: 7px;\n    color: var(--rm-orange);\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: .1em;\n}\n\n.rm-home-area h2 {\n    margin: 0 0 7px;\n    color: var(--rm-blue);\n    font-size: 17px;\n    line-height: 1.3;\n}\n\n.rm-home-area p {\n    margin: 0;\n    color: var(--rm-muted);\n    font-size: 13px;\n    line-height: 1.5;\n}\n\n\/* =========================================================\n   LATEST NEWS SIDEBAR\n   ========================================================= *\/\n\n.rm-latest-news {\n    padding: 24px;\n    background: #f5f8fa;\n    border: 1px solid var(--rm-border);\n    border-radius: 11px;\n    box-shadow: 0 5px 20px rgba(24,52,72,.065);\n}\n\n.rm-latest-news-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin-bottom: 17px;\n    padding-bottom: 12px;\n    border-bottom: 1px solid var(--rm-border);\n}\n\n.rm-latest-news-header h2 {\n    margin: 0;\n    color: var(--rm-blue);\n    font-size: 22px;\n    line-height: 1.2;\n}\n\n.rm-all-news {\n    color: var(--rm-orange) !important;\n    font-size: 12px;\n    font-weight: 700;\n    text-decoration: none !important;\n}\n\n.rm-all-news:hover {\n    text-decoration: underline !important;\n}\n\n\/* Automatically generated sliding news cards *\/\n\n.rm-latest-news-list {\n    position: relative;\n    display: block;\n}\n\n.rm-latest-card {\n    position: absolute;\n    inset: 0;\n    display: block;\n    overflow: hidden;\n    background: #fff;\n    border: 1px solid var(--rm-border);\n    border-radius: 10px;\n    color: inherit !important;\n    text-decoration: none !important;\n    box-shadow: 0 5px 18px rgba(24,52,72,.09);\n    opacity: 0;\n    visibility: hidden;\n    pointer-events: none;\n    transform: translateX(22px);\n    transition:\n        opacity .45s ease,\n        transform .45s ease,\n        visibility 0s linear .45s,\n        box-shadow .2s ease;\n}\n\n.rm-latest-card.is-active {\n    position: relative;\n    opacity: 1;\n    visibility: visible;\n    pointer-events: auto;\n    transform: translateX(0);\n    transition-delay: 0s;\n}\n\n.rm-latest-card.is-active:hover {\n    transform: translateY(-3px);\n    box-shadow: 0 9px 20px rgba(24,52,72,.13);\n}\n\n\/*\n * CSS-only emergency rotation for the three embedded cards. It works even\n * if WordPress removes or delays the JavaScript. As soon as JavaScript starts,\n * it adds .rm-slider-ready and takes control of the complete live news list.\n *\/\n.rm-latest-news-list:not(.rm-slider-ready) .rm-latest-card:nth-child(-n+3) {\n    visibility: visible;\n    animation: rm-fallback-news-slide 9s infinite;\n}\n\n.rm-latest-news-list:not(.rm-slider-ready) .rm-latest-card:nth-child(1) {\n    animation-delay: 0s;\n}\n\n.rm-latest-news-list:not(.rm-slider-ready) .rm-latest-card:nth-child(2) {\n    animation-delay: 3s;\n}\n\n.rm-latest-news-list:not(.rm-slider-ready) .rm-latest-card:nth-child(3) {\n    animation-delay: 6s;\n}\n\n@keyframes rm-fallback-news-slide {\n    0%, 32% {\n        opacity: 1;\n        visibility: visible;\n        pointer-events: auto;\n        transform: translateX(0);\n    }\n\n    33.333%, 100% {\n        opacity: 0;\n        visibility: hidden;\n        pointer-events: none;\n        transform: translateX(22px);\n    }\n}\n\n.rm-latest-card-image {\n    width: 100%;\n    aspect-ratio: 16 \/ 9;\n    overflow: hidden;\n    background: linear-gradient(135deg, var(--rm-blue), var(--rm-blue-2));\n}\n\n.rm-latest-card-image img {\n    display: block;\n    width: 100%;\n    height: 100%;\n    object-fit: cover;\n}\n\n.rm-latest-card-content {\n    min-height: 115px;\n    padding: 17px 18px 19px;\n}\n\n.rm-latest-card-date {\n    display: block;\n    margin-bottom: 8px;\n    color: var(--rm-orange);\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: .04em;\n    text-transform: uppercase;\n}\n\n.rm-latest-card-title {\n    margin: 0;\n    color: var(--rm-blue);\n    font-size: 17px;\n    font-weight: 700;\n    line-height: 1.38;\n}\n\n.rm-news-slider-controls {\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    gap: 13px;\n    margin-top: 14px;\n}\n\n.rm-news-slider-controls[hidden] {\n    display: none;\n}\n\n.rm-news-slider-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    width: 34px;\n    height: 34px;\n    padding: 0;\n    background: #fff;\n    border: 1px solid var(--rm-border);\n    border-radius: 50%;\n    color: var(--rm-blue);\n    cursor: pointer;\n    font: inherit;\n    font-size: 21px;\n    font-weight: 700;\n    line-height: 1;\n    transition:\n        background-color .2s ease,\n        border-color .2s ease,\n        color .2s ease,\n        transform .2s ease;\n}\n\n.rm-news-slider-button:hover,\n.rm-news-slider-button:focus-visible {\n    background: var(--rm-blue);\n    border-color: var(--rm-blue);\n    color: #fff;\n    outline: none;\n    transform: translateY(-1px);\n}\n\n.rm-news-slider-counter {\n    min-width: 48px;\n    color: var(--rm-muted);\n    font-size: 12px;\n    font-weight: 700;\n    letter-spacing: .06em;\n    text-align: center;\n}\n\n.rm-latest-loading,\n.rm-latest-error {\n    margin: 0;\n    padding: 20px 10px;\n    color: var(--rm-muted);\n    font-size: 13px;\n    line-height: 1.5;\n    text-align: center;\n}\n\n\/* =========================================================\n   SOCIAL MEDIA\n   ========================================================= *\/\n\n.rm-social-feeds {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 20px;\n    margin: 0 0 38px;\n}\n\n.rm-social-feeds-title {\n    grid-column: 1 \/ -1;\n    margin: 0 0 2px;\n    color: var(--rm-blue);\n    font-size: 20px;\n    line-height: 1.3;\n}\n\n.rm-social-feed {\n    overflow: hidden;\n    width: 100%;\n    background: #fff;\n    border: 1px solid var(--rm-border);\n    border-radius: 10px;\n    box-shadow: 0 5px 18px rgba(24,52,72,.09);\n}\n\n.rm-social-feed-header {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 14px;\n    padding: 13px 16px;\n    background: var(--rm-blue);\n    color: #fff;\n}\n\n.rm-social-feed-header strong {\n    color: #fff;\n    font-size: 14px;\n    letter-spacing: .02em;\n}\n\n.rm-social-feed-header a {\n    color: #fff !important;\n    font-size: 11px;\n    font-weight: 800;\n    letter-spacing: .05em;\n    text-decoration: none !important;\n    text-transform: uppercase;\n}\n\n.rm-social-feed-header a:hover,\n.rm-social-feed-header a:focus {\n    color: #ffd8b7 !important;\n}\n\n.rm-social-feed-body {\n    position: relative;\n    width: 100%;\n    height: 340px;\n    min-height: 340px;\n    overflow: hidden;\n    background: #f5f8fa;\n}\n\n.rm-social-feed iframe {\n    display: block;\n    width: 100%;\n    border: 0;\n}\n\n.rm-social-feed-youtube iframe {\n    height: 100%;\n}\n\n.rm-social-feed-instagram .rm-social-feed-body {\n    padding: 10px;\n    overflow: auto;\n    background: #fff;\n}\n\n.rm-social-feed-instagram .instagram-media {\n    width: 100% !important;\n    min-width: 0 !important;\n    max-width: 100% !important;\n    margin: 0 auto !important;\n}\n\n.rm-facebook-embed {\n    width: 100%;\n    min-height: 340px;\n    padding: 0;\n    overflow: hidden;\n    background: #fff;\n}\n\n.rm-facebook-card-link {\n    position: relative;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n    justify-content: center;\n    gap: 22px;\n    width: 100%;\n    height: 340px;\n    padding: 34px 24px;\n    overflow: hidden;\n    background: linear-gradient(145deg, #fff 0%, #f1f6f9 100%);\n    color: var(--rm-blue) !important;\n    text-align: center;\n    text-decoration: none !important;\n}\n\n.rm-facebook-card-link::before,\n.rm-facebook-card-link::after {\n    content: \"\";\n    position: absolute;\n    border: 22px solid rgba(18,59,93,.045);\n    border-radius: 50%;\n}\n\n.rm-facebook-card-link::before {\n    top: -88px;\n    right: -70px;\n    width: 190px;\n    height: 190px;\n}\n\n.rm-facebook-card-link::after {\n    bottom: -105px;\n    left: -82px;\n    width: 210px;\n    height: 210px;\n}\n\n.rm-facebook-card-logo {\n    position: relative;\n    z-index: 1;\n    display: block;\n    width: auto !important;\n    max-width: 150px !important;\n    height: auto !important;\n    max-height: 150px;\n    object-fit: contain;\n    filter: drop-shadow(0 7px 16px rgba(24,52,72,.13));\n    transition: transform .25s ease;\n}\n\n.rm-facebook-card-label {\n    position: relative;\n    z-index: 1;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    padding: 10px 16px;\n    background: var(--rm-blue);\n    border-radius: 6px;\n    color: #fff;\n    font-size: 13px;\n    font-weight: 800;\n    line-height: 1.35;\n    box-shadow: 0 4px 14px rgba(24,52,72,.16);\n    transition: background-color .2s ease, transform .2s ease;\n}\n\n.rm-facebook-card-link:hover .rm-facebook-card-logo,\n.rm-facebook-card-link:focus .rm-facebook-card-logo {\n    transform: scale(1.045);\n}\n\n.rm-facebook-card-link:hover .rm-facebook-card-label,\n.rm-facebook-card-link:focus .rm-facebook-card-label {\n    background: var(--rm-orange);\n    transform: translateY(-1px);\n}\n\n\/* =========================================================\n   CLOSING\n   ========================================================= *\/\n\n.rm-home-closing {\n    position: relative;\n    overflow: hidden;\n    padding: 30px 34px;\n    background: linear-gradient(135deg, #123b5d, #23647f);\n    border-radius: 11px;\n    color: #fff;\n    text-align: center;\n}\n\n.rm-home-closing::after {\n    content: \"\";\n    position: absolute;\n    top: -95px;\n    right: -45px;\n    width: 220px;\n    height: 220px;\n    border: 27px solid rgba(255,255,255,.055);\n    border-radius: 50%;\n}\n\n.rm-home-closing p {\n    position: relative;\n    z-index: 1;\n    max-width: 820px;\n    margin: 0 auto 21px;\n    color: rgba(255,255,255,.9);\n    font-size: 15px;\n    line-height: 1.7;\n}\n\n.rm-home-buttons {\n    position: relative;\n    z-index: 1;\n    display: flex;\n    flex-wrap: wrap;\n    justify-content: center;\n    gap: 11px;\n}\n\n.rm-home-button {\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    min-height: 42px;\n    padding: 9px 17px;\n    border: 2px solid #fff;\n    border-radius: 5px;\n    color: #fff !important;\n    font-size: 13px;\n    font-weight: 700;\n    text-decoration: none !important;\n    transition:\n        background .2s ease,\n        color .2s ease,\n        transform .2s ease;\n}\n\n.rm-home-button:hover {\n    background: #fff;\n    color: var(--rm-blue) !important;\n    transform: translateY(-2px);\n}\n\n.rm-home-button-secondary {\n    background: rgba(255,255,255,.1);\n    border-color: rgba(255,255,255,.45);\n}\n\n\/* =========================================================\n   RESPONSIVE\n   ========================================================= *\/\n\n@media (max-width: 900px) {\n    .rm-home-main {\n        grid-template-columns: 1fr;\n    }\n\n    .rm-latest-news {\n        width: 100%;\n        max-width: 620px;\n        margin: 0 auto;\n    }\n\n    .rm-social-feeds {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n}\n\n@media (min-width: 601px) and (max-width: 900px) {\n    .rm-social-feed:last-of-type {\n        grid-column: 1 \/ -1;\n    }\n}\n\n@media (max-width: 600px) {\n    .rm-home-logo {\n        padding: 14px 10px 19px;\n    }\n\n    .rm-home-areas {\n        grid-template-columns: 1fr;\n    }\n\n    .rm-latest-news {\n        padding: 19px;\n    }\n\n    .rm-latest-card-title {\n        font-size: 16px;\n    }\n\n    .rm-social-feeds {\n        grid-template-columns: 1fr;\n    }\n\n    .rm-home-buttons {\n        flex-direction: column;\n    }\n\n    .rm-home-button {\n        width: 100%;\n    }\n\n    .rm-home-closing {\n        padding: 27px 21px;\n    }\n}\n\n@media (prefers-reduced-motion: reduce) {\n    .rm-latest-card {\n        transition: none;\n    }\n}\n<\/style>\n\n\n<main class=\"rm-home\">\n\n    <!-- LARGE CENTRED LOGO -->\n\n    <section class=\"rm-home-logo\">\n\n        <video id=\"rm-logo-video\" autoplay=\"\" muted=\"\" playsinline=\"\" preload=\"auto\" aria-label=\"Animated Rockmech logo\">\n\n            <source src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Rockmech-video.mp4\" type=\"video\/mp4\">\n\n            Your browser does not support HTML video.\n        <\/video>\n\n    <\/section>\n\n\n    <!-- INTRODUCTION + LATEST NEWS -->\n\n    <div class=\"rm-home-main\">\n\n        <!-- LEFT SIDE -->\n\n        <div class=\"rm-home-left\">\n\n            <section class=\"rm-home-intro\">\n\n                <span class=\"rm-home-label\">\n                    Politecnico di Torino\n                <\/span>\n\n                <h1>\n                    Rock Mechanics, Geomaterials, Slope Stability and Tunnelling\n                <\/h1>\n\n                <p>\n                    The <strong>Rockmech Research Group<\/strong> operates in\n                    the fields of rock mechanics and rock engineering,\n                    developing knowledge and innovative solutions for\n                    underground infrastructures and natural environments.\n                <\/p>\n\n                <p>\n                    The group combines experimental investigation, advanced\n                    numerical modelling and innovative monitoring\n                    technologies. Its activities range from <strong>rock\n                    characterization<\/strong> and <strong>slope stability<\/strong> to <strong>tunnelling<\/strong>,\n                     <strong>natural-hazard mitigation <\/strong> and sustainable\n                    <strong>energy geostructures<\/strong>.\n                <\/p>\n\n            <\/section>\n\n\n            <section class=\"rm-home-areas\">\n\n                <article class=\"rm-home-area\">\n                    <span class=\"rm-area-number\">01<\/span>\n                    <h2>Rock mechanics<\/h2>\n\n                    <p>\n                        Laboratory and in situ characterization of rocks\n                        and geomaterials.\n                    <\/p>\n                <\/article>\n\n\n                <article class=\"rm-home-area\">\n                    <span class=\"rm-area-number\">02<\/span>\n                    <h2>Slope stability<\/h2>\n\n                    <p>\n                        Landslides, natural hazards and advanced\n                        geotechnical monitoring.\n                    <\/p>\n                <\/article>\n\n\n                <article class=\"rm-home-area\">\n                    <span class=\"rm-area-number\">03<\/span>\n                    <h2>Tunnelling<\/h2>\n\n                    <p>\n                        Design and behaviour of shallow, deep and existing\n                        underground structures.\n                    <\/p>\n                <\/article>\n\n\n                <article class=\"rm-home-area\">\n                    <span class=\"rm-area-number\">04<\/span>\n                    <h2>Energy geostructures<\/h2>\n\n                    <p>\n                        Underground infrastructure for renewable\n                        thermal-energy exchange and storage.\n                    <\/p>\n                <\/article>\n\n            <\/section>\n\n        <\/div>\n\n\n        <!-- RIGHT SIDE: LATEST NEWS -->\n\n        <aside class=\"rm-latest-news\">\n\n            <div class=\"rm-latest-news-header\">\n\n                <h2>Latest News<\/h2>\n\n                <a class=\"rm-all-news\" href=\"https:\/\/rockmech.polito.it\/index.php\/news\/\">\n                    View all\n                <\/a>\n\n            <\/div>\n\n\n            <div id=\"rm-latest-news-list\" class=\"rm-latest-news-list\" aria-live=\"off\" aria-label=\"Latest Rockmech news\">\n\n                <!--\n                    Visible fallback card. JavaScript replaces it with a\n                    slideshow containing all News articles, ordered from\n                    newest to oldest. If loading fails, this card remains.\n                -->\n\n                <a class=\"rm-latest-card is-active\" href=\"\/index.php\/news\/#news-arv-final-conference-2026\">\n\n                    <div class=\"rm-latest-card-image\">\n                        <img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/ARV-conference.png\" alt=\"Alessandra Insana at the Final Conference of the H2020 ARV Project in Trondheim\">\n                    <\/div>\n\n                    <div class=\"rm-latest-card-content\">\n                        <time class=\"rm-latest-card-date\" datetime=\"2026-10-06\">\n                            6\u20137 October 2026\n                        <\/time>\n\n                        <h3 class=\"rm-latest-card-title\">\n                            Final Conference of the H2020 ARV Project\n                        <\/h3>\n                    <\/div>\n\n                <\/a>\n\n\n                <a class=\"rm-latest-card\" href=\"\/index.php\/news\/#news-eurock-2026\" aria-hidden=\"true\" tabindex=\"-1\">\n\n                    <div class=\"rm-latest-card-image\">\n                        <img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/IMG_5352-scaled.jpg\" alt=\"Rockmech delegation at EUROCK 2026 in Skopje\">\n                    <\/div>\n\n                    <div class=\"rm-latest-card-content\">\n                        <time class=\"rm-latest-card-date\" datetime=\"2026-09-15\">\n                            15\u201319 September 2026\n                        <\/time>\n\n                        <h3 class=\"rm-latest-card-title\">\n                            Rockmech delegation at EUROCK 2026, Skopje\n                        <\/h3>\n                    <\/div>\n\n                <\/a>\n\n\n                <a class=\"rm-latest-card\" href=\"\/index.php\/news\/#news-energy-geostructures-2026\" aria-hidden=\"true\" tabindex=\"-1\">\n\n                    <div class=\"rm-latest-card-image\">\n                        <img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled.jpg\" alt=\"Rockmech team at the 1st World Congress on Energy Geostructures\">\n                    <\/div>\n\n                    <div class=\"rm-latest-card-content\">\n                        <time class=\"rm-latest-card-date\" datetime=\"2026-09-03\">\n                            3 September 2026\n                        <\/time>\n\n                        <h3 class=\"rm-latest-card-title\">\n                            1st World Congress on Energy Geostructures,\n                            Cluj-Napoca\n                        <\/h3>\n                    <\/div>\n\n                <\/a>\n\n            <\/div>\n\n\n            <div id=\"rm-news-slider-controls\" class=\"rm-news-slider-controls\" hidden=\"\">\n\n                <button id=\"rm-news-previous\" class=\"rm-news-slider-button\" type=\"button\" aria-label=\"Show previous news item\">\n                    \u2039\n                <\/button>\n\n                <span id=\"rm-news-slider-counter\" class=\"rm-news-slider-counter\" aria-hidden=\"true\">\n                    1 \/ 1\n                <\/span>\n\n                <button id=\"rm-news-next\" class=\"rm-news-slider-button\" type=\"button\" aria-label=\"Show next news item\">\n                    \u203a\n                <\/button>\n\n            <\/div>\n\n        <\/aside>\n\n    <\/div>\n\n\n    <!-- FULL-WIDTH AUTOMATIC SOCIAL MEDIA FEEDS -->\n\n    <section class=\"rm-social-feeds\" aria-labelledby=\"rm-social-feeds-title\">\n\n                <h2 id=\"rm-social-feeds-title\" class=\"rm-social-feeds-title\">\n                    Latest Social Updates\n                <\/h2>\n\n                <!-- INSTAGRAM: official profile embed with the newest posts -->\n\n                <article class=\"rm-social-feed rm-social-feed-instagram\">\n                    <div class=\"rm-social-feed-header\">\n                        <strong>Instagram<\/strong>\n                        <a href=\"https:\/\/www.instagram.com\/rockmechpolito\/\" target=\"_blank\" rel=\"noopener noreferrer\">Open profile \u2197<\/a>\n                    <\/div>\n\n                    <div class=\"rm-social-feed-body\">\n                        <blockquote class=\"instagram-media\" data-instgrm-permalink=\"https:\/\/www.instagram.com\/rockmechpolito\/\" data-instgrm-version=\"14\">\n                            <a href=\"https:\/\/www.instagram.com\/rockmechpolito\/\" target=\"_blank\" rel=\"noopener noreferrer\">\n                                View the latest Rockmech posts on Instagram\n                            <\/a>\n                        <\/blockquote>\n                    <\/div>\n                <\/article>\n\n                <!-- YOUTUBE: uploads playlist, newest uploaded video first -->\n\n                <article class=\"rm-social-feed rm-social-feed-youtube\">\n                    <div class=\"rm-social-feed-header\">\n                        <strong>YouTube<\/strong>\n                        <a href=\"https:\/\/www.youtube.com\/@rockmechpolito273\" target=\"_blank\" rel=\"noopener noreferrer\">Open channel \u2197<\/a>\n                    <\/div>\n\n                    <div class=\"rm-social-feed-body\">\n                        <iframe src=\"https:\/\/www.youtube.com\/embed\/videoseries?list=UUe9EhyOg67mUvSg7NHHFryQ&amp;rel=0\" title=\"Latest videos from Rockmech Politecnico di Torino\" loading=\"lazy\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen=\"\"><\/iframe>\n                    <\/div>\n                <\/article>\n\n                <!-- FACEBOOK: linked Rockmech card -->\n\n                <article class=\"rm-social-feed rm-social-feed-facebook\">\n                    <div class=\"rm-social-feed-header\">\n                        <strong>Facebook<\/strong>\n                        <a href=\"https:\/\/www.facebook.com\/RockmechPolito\" target=\"_blank\" rel=\"noopener noreferrer\">Open page \u2197<\/a>\n                    <\/div>\n\n                    <div class=\"rm-social-feed-body rm-facebook-embed\">\n                        <a class=\"rm-facebook-card-link\" href=\"https:\/\/www.facebook.com\/RockmechPolito\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Visit Rockmech Politecnico di Torino on Facebook\">\n                            <img class=\"rm-facebook-card-logo\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/icon.png\" alt=\"Rockmech Politecnico di Torino\" loading=\"lazy\" decoding=\"async\">\n                            <span class=\"rm-facebook-card-label\">Visit RockmechPolito on Facebook \u2197<\/span>\n                        <\/a>\n                    <\/div>\n                <\/article>\n\n    <\/section>\n\n    <script async=\"\" src=\"https:\/\/www.instagram.com\/embed.js\"><\/script>\n\n    <!-- CLOSING -->\n\n    <section class=\"rm-home-closing\">\n\n        <p>\n            Faculty members, researchers and PhD students work together\n            within national and international projects, integrating\n            scientific research and engineering applications for safer,\n            more resilient and sustainable infrastructure.\n        <\/p>\n\n        <div class=\"rm-home-buttons\">\n\n            <a class=\"rm-home-button\" href=\"https:\/\/rockmech.polito.it\/index.php\/research-topics\/\">\n                Research topics\n            <\/a>\n\n            <a class=\"rm-home-button rm-home-button-secondary\" href=\"https:\/\/rockmech.polito.it\/index.php\/research-projects\/\">\n                Research projects\n            <\/a>\n\n          <a class=\"rm-home-button rm-home-button-secondary\" href=\"https:\/\/rockmech.polito.it\/index.php\/sample-page\/\" aria-label=\"Meet the Rockmech team\">\n    Meet the team\n<\/a>\n            \n\n        <\/div>\n\n    <\/section>\n\n<\/main>\n\n\n<script>\n(function () {\n\nfunction initialiseRockmechHome() {\n\n    \/* =====================================================\n       LOGO VIDEO: RETAIN FINAL FRAME\n       ===================================================== *\/\n\n    const video = document.getElementById(\"rm-logo-video\");\n\n    if (video) {\n        video.addEventListener(\"ended\", function () {\n            video.pause();\n\n            try {\n                video.currentTime = Math.max(0, video.duration - 0.05);\n            } catch (error) {\n                \/* Most browsers retain the final frame automatically. *\/\n            }\n        });\n\n        video.addEventListener(\"canplay\", function () {\n            if (video.paused && video.currentTime === 0) {\n                video.play().catch(function () {\n                    \/* Autoplay depends on browser settings. *\/\n                });\n            }\n        }, { once: true });\n    }\n\n\n    \/* =====================================================\n       AUTOMATIC NEWS SLIDER \u2014 NEWEST TO OLDEST\n       ===================================================== *\/\n\n    \/*\n     * A relative path is essential here. It works whether WordPress serves\n     * the site as rockmech.polito.it or www.rockmech.polito.it and therefore\n     * avoids cross-origin browser blocking.\n     *\/\n    const newsPath = \"\/index.php\/news\/\";\n    const newsPage = new URL(newsPath, window.location.origin).href;\n\n    const newsContainer =\n        document.getElementById(\"rm-latest-news-list\");\n\n    const sliderControls =\n        document.getElementById(\"rm-news-slider-controls\");\n\n    const previousButton =\n        document.getElementById(\"rm-news-previous\");\n\n    const nextButton =\n        document.getElementById(\"rm-news-next\");\n\n    const sliderCounter =\n        document.getElementById(\"rm-news-slider-counter\");\n\n    if (!newsContainer) {\n        return;\n    }\n\n    \/*\n     * Remove the old manually coded cards immediately. The three cards\n     * displayed here will be rebuilt from the Posts rendered on the News\n     * page by \n    <section class=\"rockmech-news\">\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-276\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"480\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/WhatsApp-Image-2026-10-23-at-16.56.31-1024x768.jpeg\" class=\"attachment-large size-large wp-post-image\" alt=\"GENIUS\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/WhatsApp-Image-2026-10-23-at-16.56.31-1024x768.jpeg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/WhatsApp-Image-2026-10-23-at-16.56.31-300x225.jpeg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/WhatsApp-Image-2026-10-23-at-16.56.31-768x576.jpeg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/WhatsApp-Image-2026-10-23-at-16.56.31.jpeg 1188w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-10-27\"\n                        >\n                            27 October 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>GENIUS<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<p class=\"wp-block-paragraph\">A great start for the GENIUS MSCA Doctoral Network!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Over the past few days, members of the Rockmech Research Group participated in the first Training School of the <strong>GENIUS MSCA Doctoral Network<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">During the event, <strong>Alessandra Insana<\/strong> and <strong>Marco Barla<\/strong> delivered lectures to the 15 doctoral researchers participating in the network, contributing to the programme\u2019s scientific and educational activities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are delighted to welcome Politecnico di Torino\u2019s two new doctoral researchers: <strong>Borislava Georgieva<\/strong>, from Bulgaria, and <strong>Rahul Velu<\/strong>, from India.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Moreover, <strong>Mattia Garza<\/strong>, a former Politecnico di Torino student, and <strong>Claudia Guidolin<\/strong>, both currently based at UGA in France, will undertake their secondment periods at Politecnico di Torino.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Welcome to the Rockmech team!<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-final-conference-of-the-h2020-arv-project\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"392\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-1024x627.png\" class=\"attachment-large size-large wp-post-image\" alt=\"Final Conference of the H2020 ARV Project\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-1024x627.png 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-300x184.png 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-768x470.png 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-1536x941.png 1536w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Picture2_00-2048x1254.png 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-10-27\"\n                        >\n                            27 October 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Final Conference of the H2020 ARV Project<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Our Rockmech team member <strong>Alessandra Insana<\/strong> has just returned from Trondheim, Norway, where she attended the <strong>Final Conference of the H2020 ARV Project<\/strong>. This event marked the culmination of five years of collaborative research and innovation towards more sustainable, energy-efficient and climate-positive buildings and communities.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The conference offered two inspiring days of presentations and discussions, showcasing innovative solutions and valuable lessons learned from six demonstration projects across Europe, while also exploring opportunities for their wider implementation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the second day, Alessandra contributed to the discussion with the presentation:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cThermal retrofitting by radial heat exchangers of the existing Piedicastello tunnels in Trento\u201d<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The work was co-authored with <strong>Marco Barla<\/strong> and <strong>Simone De Feudis<\/strong> and highlighted the potential of existing underground infrastructures to contribute to the energy transition.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As the ARV project approaches its conclusion, we would like to congratulate the entire consortium on the impressive work carried out over the past five years and the results achieved.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A special thank you to <strong>Inger Andresen<\/strong>, <strong>Jaume Salom<\/strong> and <strong>Kelly Riedesel<\/strong> for their kind invitation, warm hospitality and excellent organisation of the event.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We look forward to seeing how the outcomes of ARV will inspire future research and practical applications!<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-rockmech-delegation-at-eurock-2026-skopje\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"480\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-1024x768.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"Rockmech delegation at EUROCK 2026, Skopje\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-1024x768.jpg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-300x225.jpg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-768x576.jpg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-1536x1152.jpg 1536w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/09\/IMG_5352-2048x1536.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-09-15\"\n                        >\n                            15 September 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Rockmech delegation at EUROCK 2026, Skopje<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From 15 to 19 September 2026, members of the RockMech Research Group and the DISEG Department took part in EUROCK 2026, held in Skopje, North Macedonia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Throughout the conference, our team contributed with the following workshop and presentations, in chronological order:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Prof. Marco Barla<\/strong> with the workshop: <em>\u201cWhen adaptive design is not yet the Observational Method: lessons from the Perca tunnel\u201d<\/em><\/li>\n\n\n\n<li><strong>Dr. Maddalena Marchelli<\/strong> with the presentation: <em>\u201cA probabilistic fragmentation-based rockfall model for open-pit and natural slopes\u201d<\/em><\/li>\n\n\n\n<li><strong>Prof. Valerio De Biagi<\/strong> with the presentation: <em>\u201cFrom nominal energy to capacity curves: a probabilistic framework for reliability-based design of flexible rockfall barriers\u201d<\/em><\/li>\n\n\n\n<li><strong>PhD student Francesco Campana<\/strong> with the presentation: <em>\u201cTriaxial creep testing on argillaceous weak rock for DSGSD movement prediction\u201d<\/em><\/li>\n\n\n\n<li><strong>PhD student Juliana Lopez Ochoa<\/strong> with the presentation: <em>\u201cNumerical study of an abandoned mine repurposed for CAES systems\u201d<\/em><\/li>\n\n\n\n<li><strong>Dr. Maria Lia Napoli<\/strong> with the presentation: <em>\u201cNumerical Analysis of Cervo Cliff Stability Due to Basal Marine Erosion\u201d<\/em><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Our PhD students Francesco Campana and Juliana Lopez Ochoa also took part in the exciting RockBowl competition, where they made it all the way to the finals!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">EUROCK 2026 was a great opportunity to share with the scientific community the research being carried out within the DISEG Department and the RockMech Research Group, while also exchanging ideas and connecting with researchers and professionals from across the field of rock mechanics. A great week of science, discussion, and teamwork in Skopje!<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-1st-world-congress-on-energy-geostructures-cluj-napoca\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"243\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343-1024x389.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"1st World Congress on Energy Geostructures, Cluj-Napoca\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343-1024x389.jpg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343-300x114.jpg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343-768x292.jpg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343-1536x584.jpg 1536w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/IMG_9544-scaled-e1792093369343.jpg 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-09-03\"\n                        >\n                            3 September 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>1st World Congress on Energy Geostructures, Cluj-Napoca<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The 1st World Congress on Energy Geostructures was held on 3 September 2026 in Cluj-Napoca, Romania.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Congress was organised by the <strong>International Society for Energy Geostructures (ISEG)<\/strong>, chaired by Prof. Marco Barla, and represents the legacy of the FOLIAGE COST Action, continuing its efforts to strengthen international collaboration and advance research in energy geostructures.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Rockmech team contributed with several presentations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em>\u201cNumerical investigation on the influence of partially saturated soil conditions on the heat exchanged by a shallow energy wall\u201d<\/em> , presented by <strong>Maria Romana Alvi<\/strong>.<\/li>\n\n\n\n<li><em>\u201cAnalytical and Numerical Simulation of the Charging Phase for an Underground Thermal Energy Storage System in an Air-raid Shelter\u201d<\/em> , presented by <strong>Juliana Lopez Ochoa<\/strong>.<\/li>\n\n\n\n<li><em>\u201cNumerical investigation of the thermal performance of an existing tunnel retrofitted by radial heat exchangers\u201d<\/em> , presented by <strong>Simone De Feudis<\/strong>.<\/li>\n\n\n\n<li><em>\u201cTechnological solution for the thermal activation of a microtunnel\u201d<\/em> , presented by <strong>Martina Scerbo<\/strong>.<\/li>\n\n\n\n<li><em>\u201cExploring existing underground spaces in Europe for thermal energy production and storage\u201d<\/em> , presented by <strong>Alessandra Insana<\/strong>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Simone De Feudis received the Best Paper Award for his work on the thermal performance of existing tunnels retrofitted with radial heat exchangers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The first edition also looked ahead to the future of the Congress, with the next editions officially announced.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-maria-romana-alvi-awarded-a-phd-in-civil-and-environmental-engineering\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"423\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Screenshot-2026-07-02-alle-12.57.31-e1793705528223.png\" class=\"attachment-large size-large wp-post-image\" alt=\"Maria Romana Alvi awarded a PhD in Civil and Environmental Engineering\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Screenshot-2026-07-02-alle-12.57.31-e1793705528223.png 712w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Screenshot-2026-07-02-alle-12.57.31-e1793705528223-300x198.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-06-30\"\n                        >\n                            30 June 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Maria Romana Alvi awarded a PhD in Civil and Environmental Engineering<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Congratulations to <strong>Maria Romana Alvi<\/strong>, who completed her PhD in Civil and Environmental Engineering with a thesis entitled:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cEnhancing energy geostructures by heat storage materials and integration with solar energy\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The research, carried out under the supervision of <strong>Prof. Marco Barla<\/strong> and <strong>Dr. Alessandra Insana<\/strong>, focused on optimising the efficiency of energy geostructures through the integration of Phase Change Materials (PCM), combining advanced numerical modelling with experimental validation.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-amirreza-pourfatollah-awarded-a-phd-in-civil-and-environmental-engineering\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"559\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Amirreza-Pourfatollah-awarded-PhD-in-Civil-and-Environmental-Engineering-1024x894.jpeg\" class=\"attachment-large size-large wp-post-image\" alt=\"Amirreza Pourfatollah awarded a PhD in Civil and Environmental Engineering\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Amirreza-Pourfatollah-awarded-PhD-in-Civil-and-Environmental-Engineering-1024x894.jpeg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Amirreza-Pourfatollah-awarded-PhD-in-Civil-and-Environmental-Engineering-300x262.jpeg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Amirreza-Pourfatollah-awarded-PhD-in-Civil-and-Environmental-Engineering-768x671.jpeg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Amirreza-Pourfatollah-awarded-PhD-in-Civil-and-Environmental-Engineering.jpeg 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-06-26\"\n                        >\n                            26 June 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Amirreza Pourfatollah awarded a PhD in Civil and Environmental Engineering<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Congratulations to <strong>Amirreza Pourfatollah<\/strong>, who completed his PhD in Civil and Environmental Engineering with a thesis entitled:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u201cClimate Change Impacts on Landslide Susceptibility in the Alpine Region Using a Machine Learning Approach\u201d<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The research, carried out under the supervision of <strong>Prof. Marco Barla<\/strong>, <strong>Prof. Valerio De Biagi<\/strong> and <strong>Dr. Alessandra Insana<\/strong>, focused on developing a data-driven approach to assess landslide susceptibility across complex Alpine terrain by integrating geospatial analysis with machine-learning algorithms.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-the-tun-re-fit-project-awarded-at-the-ita-awards-2025\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"427\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-1024x683.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"The Tun.Re.Fit. project awarded at the ITA Awards 2025\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-1024x683.jpg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-300x200.jpg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-768x512.jpg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-1536x1024.jpg 1536w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/Awards-2025-Results-7b-Technical-Innovation-of-the-Year-Silver-Geothermal-retrofitting-in-Italian-road-tunnels-2048x1365.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2026-06-24\"\n                        >\n                            24 June 2026                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>The Tun.Re.Fit. project awarded at the ITA Awards 2025<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A tunnel that produces energy while improving road safety: this Politecnico di Torino innovation was recognised at the <strong>ITA Awards 2025<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The <strong>Tun.Re.Fit.<\/strong> project, developed by the team of the Department of Structural, Building and Geotechnical Engineering (DISEG) \u2014 <strong>Marco Barla<\/strong>, <strong>Simone De Feudis<\/strong> and <strong>Alessandra Insana<\/strong> \u2014 achieved second place in the <em>Technical Innovation of the Year<\/em> category.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-unexpected-geothermal-energy-at-solar-solutions-torino\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"220\" height=\"115\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/La-geotermia-che-non-ti-aspetti-a-Solar-Solutions-Torino.png\" class=\"attachment-large size-large wp-post-image\" alt=\"Unexpected geothermal energy at Solar Solutions Torino\" loading=\"lazy\" decoding=\"async\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2025-10-01\"\n                        >\n                            1 October 2025                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Unexpected geothermal energy at Solar Solutions Torino<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Urban infrastructure as an energy source: discover the geothermal energy you would not expect.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Politecnico di Torino presented its innovative geothermal solutions at <strong>Solar Solutions Torino<\/strong>, the new summit dedicated to renewable energy in Northern Italy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The seminar by <strong>Prof. Marco Barla<\/strong> took place on 1 October 2025 at 14:50 at Lingotto Fiere in Turin.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-unlocking-underground-energy\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"220\" height=\"210\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/10\/Unlocking-underground-energy.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"Unlocking Underground Energy\" loading=\"lazy\" decoding=\"async\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2025-06-25\"\n                        >\n                            25 June 2025                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Unlocking Underground Energy<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Energy geostructures represent an innovative frontier in geothermal technology, transforming buildings and infrastructure into active sources of energy. This international event explored the design and construction challenges involved in accelerating the market adoption of these cutting-edge solutions.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The workshop was organised within the annual meeting of COST Action CA21156 <strong>\u201cFostering Large-Scale Implementation of Energy Geostructures\u201d (FOLIAGE)<\/strong>, the Driving Urban Transitions project <strong>REGENERATE<\/strong> and the PRIN 2022 national research project <strong>GEOREFIT<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Drawing on the results of these three projects, the workshop provided an overview of the latest technologies and showcased successful international case studies. Internationally recognised experts presented innovative solutions, while companies shared relevant examples for the Italian market.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The workshop was open free of charge to professionals, students and academics, and was held in English with continuing professional education credits available for engineers, geologists and architects.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The event offered a valuable opportunity for professional development and networking with leading specialists in the field of energy geostructures.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-eurock-2025-in-trondheim\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"479\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/81-1024x767.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"EUROCK 2025 in Trondheim\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/81-1024x767.jpg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/81-300x225.jpg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/81-768x575.jpg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/81.jpg 1500w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2025-06-16\"\n                        >\n                            16 June 2025                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>EUROCK 2025 in Trondheim<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">From 16 to 20 June, our team took part in <strong>EUROCK 2025<\/strong> in Trondheim, Norway, one of the most important international conferences in rock mechanics and rock engineering.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Marco Barla<\/strong> delivered the keynote lecture <em>\u201cThe design of energy tunnels for a sustainable future\u201d<\/em>, offering a forward-looking perspective on the role of energy tunnels as sustainable infrastructure.<\/li>\n\n\n\n<li><strong>Maria Lia Napoli<\/strong> presented <em>\u201cValidation of the rockfall SIF and SAI indexes by a 3D analysis of a rock slope in Valsesia Valley (Italy)\u201d<\/em>, using three-dimensional modelling to validate predictive indexes on a real slope.<\/li>\n\n\n\n<li><strong>Lorenzo Milan<\/strong> discussed <em>\u201cA rational method for assessing the occurrence of brittle failure in deep tunnels\u201d<\/em>, proposing a rational predictive approach to brittle behaviour in deep tunnel environments.<\/li>\n\n\n\n<li><strong>Giulia Torsello<\/strong> presented her experimental research on <em>\u201cMode I fracture toughness of a low-porosity rock subjected to freeze-thaw cycles\u201d<\/em>, addressing rock durability under cold-climate conditions.<\/li>\n\n\n\n<li><strong>Maria Teresa Carriero<\/strong> presented <em>\u201cEstimation of the Failure Probability of Attenuator Rockfall Protection Structures Using a Reliability Analysis Approach (RBD) and Kriging Metamodel\u201d<\/em>, combining advanced reliability analysis and metamodeling for rockfall protection design.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In addition to the scientific programme, Maria Teresa Carriero and Giulia Torsello took part in the RockBowl, an international competition challenging young researchers with technical and non-technical questions on rock mechanics and engineering. With the support of <strong>Maria Rita Migliazza<\/strong> as their faculty tutor, they achieved an excellent second place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maria Teresa Carriero received the Best Player award, while Giulia Torsello received the Best Paper \u2013 Young Category award for the scientific excellence of her work.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Presentations, discussions and teamwork made EUROCK 2025 a memorable event for our geotechnical research team.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n            \n            <article\n                class=\"rm-news-item\"\n                id=\"news-maria-romana-alvi-finalist-at-the-young-academics-award-2024\"\n            >\n\n                \n                    <div class=\"rm-news-image\">\n\n                        <img width=\"640\" height=\"556\" src=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-1024x890.jpg\" class=\"attachment-large size-large wp-post-image\" alt=\"Maria Romana Alvi finalist at the Young Academics Award 2024\" loading=\"lazy\" decoding=\"async\" srcset=\"https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-1024x890.jpg 1024w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-300x261.jpg 300w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-768x667.jpg 768w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-1536x1335.jpg 1536w, https:\/\/rockmech.polito.it\/wp-content\/uploads\/2026\/11\/MRA-2048x1780.jpg 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/>\n                        <time\n                            class=\"rm-news-date\"\n                            datetime=\"2025-01-21\"\n                        >\n                            21 January 2025                        <\/time>\n\n                    <\/div>\n\n                \n                <div class=\"rm-news-content\">\n\n                    <h2>Maria Romana Alvi finalist at the Young Academics Award 2024<\/h2>\n\n                    <div class=\"rm-news-post-text\">\n                        \n<h2 class=\"wp-block-heading\"><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">On 21 January 2025, <strong>Maria Romana Alvi<\/strong> attended the Young Academics Award 2024 Finalists Workshop in Brdo pri Kranju, Slovenia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This edition of the Alpine Convention\u2019s Young Academics Award focused on <em>\u201cResponding to Environmental Changes and Maintaining a High Quality of Life in the Alps\u201d<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Maria\u2019s master\u2019s thesis, <strong>\u201cThermal Performance Assessment of an Energy Lining in the Turin\u2013Lyon Base Tunnel\u201d<\/strong>, supervised by <strong>Marco Barla<\/strong> and <strong>Alessandra Insana<\/strong>, was selected as one of the noteworthy contributions to sustainable development in the Alps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The research demonstrated how thermal activation in warm tunnels, such as those in the Alpine region, could recover heat from the surrounding environment. This process could generate clean energy for local Alpine communities while reducing tunnel ventilation requirements.<\/p>\n                    <\/div>\n\n                <\/div>\n\n            <\/article>\n\n        \n    <\/section>\n\n    .\n     *\/\n    newsContainer.innerHTML =\n        '<p class=\"rm-latest-loading\">Loading latest news\u2026<\/p>';\n\n    let activeCards = [];\n\n    let currentNewsIndex = 0;\n    let newsSliderTimer = null;\n    const slideDuration = 3000;\n\n    function updateCounter() {\n        if (sliderCounter) {\n            sliderCounter.textContent =\n                (currentNewsIndex + 1) + \" \/ \" + activeCards.length;\n        }\n    }\n\n    function stopNewsSlider() {\n        if (newsSliderTimer !== null) {\n            window.clearInterval(newsSliderTimer);\n            newsSliderTimer = null;\n        }\n    }\n\n    function showNewsItem(newIndex) {\n        const cardCount = activeCards.length;\n\n        if (!cardCount) {\n            return;\n        }\n\n        activeCards.forEach(function (card) {\n            card.classList.remove(\"is-active\");\n            card.setAttribute(\"aria-hidden\", \"true\");\n            card.tabIndex = -1;\n        });\n\n        currentNewsIndex = (newIndex + cardCount) % cardCount;\n\n        activeCards[currentNewsIndex].classList.add(\"is-active\");\n        activeCards[currentNewsIndex].setAttribute(\"aria-hidden\", \"false\");\n        activeCards[currentNewsIndex].tabIndex = 0;\n\n        updateCounter();\n    }\n\n    function startNewsSlider() {\n        stopNewsSlider();\n\n        if (activeCards.length < 2 || document.hidden) {\n            return;\n        }\n\n        newsSliderTimer = window.setInterval(function () {\n            showNewsItem(currentNewsIndex + 1);\n        }, slideDuration);\n    }\n\n    function refreshSliderControls() {\n        if (sliderControls) {\n            sliderControls.hidden = activeCards.length < 2;\n        }\n\n        updateCounter();\n    }\n\n    \/* Prepare the empty slider while the News page is being loaded. *\/\n    newsContainer.classList.add(\"rm-slider-ready\");\n    showNewsItem(0);\n    refreshSliderControls();\n    startNewsSlider();\n\n    if (previousButton) {\n        previousButton.addEventListener(\"click\", function () {\n            showNewsItem(currentNewsIndex - 1);\n            startNewsSlider();\n        });\n    }\n\n    if (nextButton) {\n        nextButton.addEventListener(\"click\", function () {\n            showNewsItem(currentNewsIndex + 1);\n            startNewsSlider();\n        });\n    }\n\n    document.addEventListener(\"visibilitychange\", function () {\n        if (document.hidden) {\n            stopNewsSlider();\n        } else {\n            startNewsSlider();\n        }\n    });\n\n    \/*\n     * Build the Latest News source from the three newest WordPress Posts\n     * printed by the PHP snippet in the page head.\n     *\/\n    function fetchInjectedNewsHtml() {\n        const injectedPosts = Array.isArray(\n            window.rockmechLatestNewsData\n        )\n            ? window.rockmechLatestNewsData\n            : [];\n\n        if (!injectedPosts.length) {\n            return fetchNewsPageHtml();\n        }\n\n        const wrapper = document.createElement(\"div\");\n        const usedIds = new Set();\n\n        function addNewsItem(item) {\n            if (!item || !item.id || usedIds.has(item.id)) {\n                return;\n            }\n\n            usedIds.add(item.id);\n\n            const article = document.createElement(\"article\");\n            article.className = \"rm-news-item\";\n            article.id = item.id;\n\n            const imageBox = document.createElement(\"div\");\n            imageBox.className = \"rm-news-image\";\n\n            if (item.image_url) {\n                const newsImage = document.createElement(\"img\");\n                newsImage.src = item.image_url;\n                newsImage.alt = item.image_alt || item.title || \"Rockmech news\";\n                newsImage.loading = \"lazy\";\n                newsImage.decoding = \"async\";\n                imageBox.appendChild(newsImage);\n            }\n\n            if (item.date_text) {\n                const newsTime = document.createElement(\"time\");\n                newsTime.className = \"rm-news-date\";\n                newsTime.textContent = item.date_text;\n\n                if (item.date_iso) {\n                    newsTime.setAttribute(\"datetime\", item.date_iso);\n                }\n\n                imageBox.appendChild(newsTime);\n            }\n\n            const content = document.createElement(\"div\");\n            content.className = \"rm-news-content\";\n\n            const heading = document.createElement(\"h2\");\n            heading.textContent = item.title || \"Rockmech news\";\n\n            content.appendChild(heading);\n            article.appendChild(imageBox);\n            article.appendChild(content);\n            wrapper.appendChild(article);\n        }\n\n        injectedPosts.slice(0, 3).forEach(addNewsItem);\n\n        return Promise.resolve(wrapper.innerHTML);\n    }\n\nfunction fetchNewsPageHtml() {\n\n    \/*\n     * Read published WordPress posts directly.\n     * This ensures that every post created through\n     * Posts \u2192 Add Post appears in Latest News.\n     *\/\n    const postsEndpoint =\n        \"\/index.php?rest_route=\/wp\/v2\/posts\" +\n        \"&#038;_embed=1\" +\n        \"&#038;per_page=3\" +\n        \"&#038;orderby=date\" +\n        \"&#038;order=desc\" +\n        \"&#038;rm_latest=\" + Date.now();\n\n    return fetch(postsEndpoint, {\n        method: \"GET\",\n        cache: \"no-store\",\n        credentials: \"same-origin\"\n    })\n    .then(function (response) {\n\n        if (!response.ok) {\n            throw new Error(\"Unable to load WordPress posts.\");\n        }\n\n        return response.json();\n    })\n    .then(function (posts) {\n\n        if (!Array.isArray(posts) || !posts.length) {\n            throw new Error(\"No published posts were found.\");\n        }\n\n        const newsWrapper = document.createElement(\"div\");\n\n        posts.forEach(function (post) {\n\n            const article = document.createElement(\"article\");\n\n            article.className = \"rm-news-item\";\n            article.id = \"news-\" + post.slug;\n\n            \/*\n             * Decode WordPress title entities.\n             *\/\n            const titleDecoder = document.createElement(\"textarea\");\n\n            titleDecoder.innerHTML =\n                post.title &#038;&#038; post.title.rendered\n                    ? post.title.rendered\n                    : \"Rockmech news\";\n\n            const title = titleDecoder.value;\n\n            \/*\n             * Obtain the Featured image.\n             *\/\n            const featuredMedia =\n                post._embedded &#038;&#038;\n                post._embedded[\"wp:featuredmedia\"] &#038;&#038;\n                post._embedded[\"wp:featuredmedia\"][0]\n                    ? post._embedded[\"wp:featuredmedia\"][0]\n                    : null;\n\n            let imageUrl = \"\";\n            let imageAlt = title;\n\n            if (featuredMedia) {\n\n                if (\n                    featuredMedia.media_details &#038;&#038;\n                    featuredMedia.media_details.sizes &#038;&#038;\n                    featuredMedia.media_details.sizes.large\n                ) {\n                    imageUrl =\n                        featuredMedia.media_details.sizes.large.source_url;\n                } else {\n                    imageUrl = featuredMedia.source_url || \"\";\n                }\n\n                imageAlt = featuredMedia.alt_text || title;\n            }\n\n            const imageBox = document.createElement(\"div\");\n            imageBox.className = \"rm-news-image\";\n\n            if (imageUrl) {\n                const image = document.createElement(\"img\");\n\n                image.src = imageUrl;\n                image.alt = imageAlt;\n                image.loading = \"lazy\";\n                image.decoding = \"async\";\n\n                imageBox.appendChild(image);\n            }\n\n            \/*\n             * Create the publication date.\n             *\/\n            const postDate = new Date(post.date);\n\n            const displayedDate = new Intl.DateTimeFormat(\n                \"en-GB\",\n                {\n                    day: \"numeric\",\n                    month: \"long\",\n                    year: \"numeric\"\n                }\n            ).format(postDate);\n\n            const time = document.createElement(\"time\");\n\n            time.className = \"rm-news-date\";\n            time.setAttribute(\n                \"datetime\",\n                post.date.substring(0, 10)\n            );\n            time.textContent = displayedDate;\n\n            imageBox.appendChild(time);\n\n            \/*\n             * Create the title required by the slider.\n             *\/\n            const content = document.createElement(\"div\");\n            content.className = \"rm-news-content\";\n\n            const heading = document.createElement(\"h2\");\n            heading.textContent = title;\n\n            content.appendChild(heading);\n\n            article.appendChild(imageBox);\n            article.appendChild(content);\n\n            newsWrapper.appendChild(article);\n        });\n\n        return newsWrapper.innerHTML;\n    })\n    .catch(function () {\n\n        \/*\n         * Fall back to the rendered News page if the\n         * WordPress Posts API is temporarily unavailable.\n         *\/\n        return fetch(\n            newsPath + \"?rm_latest=\" + Date.now(),\n            {\n                method: \"GET\",\n                cache: \"no-store\",\n                credentials: \"same-origin\"\n            }\n        )\n        .then(function (response) {\n\n            if (!response.ok) {\n                throw new Error(\"Unable to load the News page.\");\n            }\n\n            return response.text();\n        });\n    });\n}\n\n    \/*\n     * Read the rendered News page directly. Its shortcode already contains\n     * every published WordPress Post, so no manually coded Home news is used.\n     *\/\n    fetch(\n        newsPath + \"?rm_home_latest=\" + Date.now(),\n        {\n            method: \"GET\",\n            cache: \"no-store\",\n            credentials: \"same-origin\"\n        }\n    )\n    .then(function (response) {\n        if (!response.ok) {\n            throw new Error(\"Unable to load the News page.\");\n        }\n\n        return response.text();\n    })\n    .then(function (html) {\n        const parser = new DOMParser();\n        const documentCopy = parser.parseFromString(html, \"text\/html\");\n\n        const newsItems = Array.from(\n            documentCopy.querySelectorAll(\".rm-news-item\")\n        );\n\n        newsItems.sort(function (firstItem, secondItem) {\n            const firstTime = firstItem.querySelector(\"time\");\n            const secondTime = secondItem.querySelector(\"time\");\n\n            const firstDate = firstTime\n                ? new Date(firstTime.getAttribute(\"datetime\")).getTime()\n                : 0;\n\n            const secondDate = secondTime\n                ? new Date(secondTime.getAttribute(\"datetime\")).getTime()\n                : 0;\n\n            return secondDate - firstDate;\n        });\n\n        if (!newsItems.length) {\n            throw new Error(\"No news items were found.\");\n        }\n\n        const newsCards = document.createDocumentFragment();\n        const createdCards = [];\n\n        newsItems.slice(0, 3).forEach(function (newsItem, newsIndex) {\n            const heading = newsItem.querySelector(\"h2\");\n            const image = newsItem.querySelector(\".rm-news-image img\");\n            const time = newsItem.querySelector(\"time\");\n\n            const articleId = newsItem.getAttribute(\"id\");\n            const title = heading\n                ? heading.textContent.trim()\n                : \"Rockmech news\";\n\n            const imageUrl = image\n                ? image.getAttribute(\"src\") ||\n                  image.getAttribute(\"data-src\") ||\n                  image.getAttribute(\"data-lazy-src\") ||\n                  \"\"\n                : \"\";\n\n            const imageAlt = image\n                ? image.getAttribute(\"alt\") || title\n                : title;\n\n            const displayedDate = time\n                ? time.textContent.trim()\n                : \"\";\n\n            const destination = articleId\n                ? newsPage + \"#\" + encodeURIComponent(articleId)\n                : newsPage;\n\n            const card = document.createElement(\"a\");\n            card.className = newsIndex === 0\n                ? \"rm-latest-card is-active\"\n                : \"rm-latest-card\";\n            card.href = destination;\n            card.setAttribute(\n                \"aria-hidden\",\n                newsIndex === 0 ? \"false\" : \"true\"\n            );\n            card.tabIndex = newsIndex === 0 ? 0 : -1;\n\n            const imageBox = document.createElement(\"div\");\n            imageBox.className = \"rm-latest-card-image\";\n\n            if (imageUrl) {\n                const cardImage = document.createElement(\"img\");\n                cardImage.src = new URL(imageUrl, newsPage).href;\n                cardImage.alt = imageAlt;\n                cardImage.loading = newsIndex === 0 ? \"eager\" : \"lazy\";\n                cardImage.decoding = \"async\";\n                imageBox.appendChild(cardImage);\n            }\n\n            const content = document.createElement(\"div\");\n            content.className = \"rm-latest-card-content\";\n\n            if (displayedDate) {\n                const dateElement = document.createElement(\"time\");\n                dateElement.className = \"rm-latest-card-date\";\n                dateElement.textContent = displayedDate;\n\n                if (time &#038;&#038; time.getAttribute(\"datetime\")) {\n                    dateElement.setAttribute(\n                        \"datetime\",\n                        time.getAttribute(\"datetime\")\n                    );\n                }\n\n                content.appendChild(dateElement);\n            }\n\n            const titleElement = document.createElement(\"h3\");\n            titleElement.className = \"rm-latest-card-title\";\n            titleElement.textContent = title;\n\n            content.appendChild(titleElement);\n\n            card.appendChild(imageBox);\n            card.appendChild(content);\n            newsCards.appendChild(card);\n            createdCards.push(card);\n        });\n\n        \/* Replace the fallback only after every live slide is ready. *\/\n        stopNewsSlider();\n        newsContainer.replaceChildren(newsCards);\n\n        activeCards = createdCards;\n        currentNewsIndex = 0;\n        showNewsItem(0);\n        refreshSliderControls();\n        startNewsSlider();\n    })\n    .catch(function () {\n        stopNewsSlider();\n        activeCards = [];\n        newsContainer.innerHTML =\n            '<p class=\"rm-latest-error\">Latest news is temporarily unavailable. ' +\n            '<a href=\"' + newsPage + '\">View all news<\/a>.<\/p>';\n        refreshSliderControls();\n    });\n\n}\n\nif (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", initialiseRockmechHome, {\n        once: true\n    });\n} else {\n    initialiseRockmechHome();\n}\n\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Your browser does not support HTML video. Politecnico di Torino Rock Mechanics, Geomaterials, Slope Stability and Tunnelling The Rockmech Research Group operates in the fields of rock mechanics and rock engineering, developing knowledge and innovative solutions for underground infrastructures and natural environments. The group combines experimental investigation, advanced numerical modelling and innovative monitoring technologies. Its &#8230; <a href=\"https:\/\/rockmech.polito.it\/index.php\/2025\/01\/21\/maria-romana-alvi-finalist-at-the-young-academics-award-2024\/\" class=\"more-link\">Read More<span class=\"screen-reader-text\"> &#8220;Maria Romana Alvi finalist at the Young Academics Award 2024&#8221;<\/span> &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-121","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/pages\/121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":24,"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/pages\/121\/revisions"}],"predecessor-version":[{"id":459,"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/pages\/121\/revisions\/459"}],"wp:attachment":[{"href":"https:\/\/rockmech.polito.it\/index.php\/wp-json\/wp\/v2\/media?parent=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}