(Rome) A ‘mirror of water’ in Rome’s ancient complex: The majestic Baths of Caracalla on Thursday opened an underwater pool that reflects its ruins as part of the site’s modernization process.

In this pool, called Lo Specchio (‘Mirror’), the famous ruins of the colossal Roman baths, built in 216 AD, are reflected in a vast surface of water measuring 42 meters long and 32 meters wide.

Daniela Polo, one of Rome’s cultural heritage directors, said: “With this stunning Specchio, we want to begin a journey to renovate one of the capital’s most important monuments and open it up to the city.” “I’m doing it,” he explained.

He said the construction of the pool “is an operation of modern architecture in harmony with ancient architecture and will allow us to strengthen the role of Caracalla Baths as a center for the promotion of culture and art.” .

(function () {
var slotName = “ad660f03ebc0d55-adSlotLppos”;
var dimensions = (“fluid”,(634,125),(634,150),(634,180),(634,200),(634,634),(634,400),(640,360),(640,480),(728,200));
var positionName = null;
var pageBlock = “text”;
const IS_MOBILE = window.innerWidth {
if (googleIframe.contentWindow === e.source){
if(e.data.nbArticles) {
let title = document.createElement(“div”)
let nbArticles = document.createElement(“div”)
title.innerHTML = “Série commanditée”
nbArticles.innerHTML = e.data.nbArticles + ” articles”
let header = document.createElement(“div”)
header.classList.add(“adSpotBlock__slotInnerHeader”)
header.appendChild(title)
header.appendChild(nbArticles)
slotInner.prepend(header)
}
}
})
}

function setUpPanorama() {
console.debug(‘Ads: Panorama Ad detected for ‘ + slotName);
let slotInner = document.getElementById(slotName);
slotInner.parentElement.style.width=”100%”;
let iframeWrapper = slotInner.firstElementChild
iframeWrapper.classList.add(‘panorama__wrapper’)
if (IS_MOBILE){
makeFullWidth(slotInner)
iframeWrapper.classList.add(‘panorama__wrapper–mobile’)
}
else{
iframeWrapper.classList.add(‘panorama__wrapper–default’)
if(pageBlock===”body”){
makeFullWidth(slotInner)
}
}
setupPanoramaIframe(iframeWrapper)

function makeFullWidth(slotInner){
let parentContainerElement = slotInner.closest(“.homeHeadlinesRow__adWrapper”)||slotInner.closest(“.homeRow__adWrapper”)||slotInner.closest(“.homeRow”)
if (!parentContainerElement){
parentContainerElement = slotInner.closest(“.adsWrapper”)
parentContainerElement.classList.add(“panorama–article”);
}else{
parentContainerElement.classList.add(“panorama–default”);
}
}

function setupPanoramaIframe(iframeWrapper){
let googleIframe = iframeWrapper.firstElementChild;
googleIframe.style.height = “100%”
window.addEventListener(‘message’, (e)=> {
if (googleIframe.contentWindow === e.source){
if(e.data.sideMarginBackgroundColor) {
iframeWrapper.style.backgroundColor = e.data.sideMarginBackgroundColor;
}
if(e.data.foregroundUrl){
createForeground(iframeWrapper,e.data.foregroundUrl,e.data.foregroundPosition,”img”)
}
if(e.data.foregroundHtmlUrl){
createForeground(iframeWrapper,e.data.foregroundHtmlUrl,e.data.foregroundPosition,”iframe”)
}
if(e.data.backgroundImgUrl){
createBackground(iframeWrapper,e.data.backgroundImgUrl,e.data.backgroundColor,”img”)
}
if(e.data.backgroundHtmlUrl){
createBackground(iframeWrapper,e.data.backgroundHtmlUrl,e.data.backgroundColor,”iframe”)
}
}
});
}

function createBackground(iframeWrapper,backgroundUrl,backgroundColor,backgroundElementType){
let backgroundElement = createBackgroundElement(backgroundUrl,backgroundElementType)
let backgroundWrapper = createBackgroundWrapper(backgroundColor)
let backgroundClipper = createBackgroundClipper()

backgroundWrapper.appendChild(backgroundElement)
backgroundClipper.appendChild(backgroundWrapper)
iframeWrapper.appendChild(backgroundClipper)

alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
let widthCache = window.innerWidth
window.addEventListener(“resize”,()=>{
if (window.innerWidth!==widthCache){
widthCache=window.innerWidth;
alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
}
})
}

function createForeground(iframeWrapper,foregroundUrl,foregroundPosition,type){
let foreground = document.createElement(type)
foreground.classList.add(“panorama__foregroundImg”)
switch (foregroundPosition){
case “top”:
foreground.style.alignSelf=”flex-start”
break;
case “center”:
foreground.style.alignSelf=”center”
break;
case “bottom”:
foreground.style.alignSelf=”flex-end”
break;
}
if (type===”iframe”){
foreground.style.height=”100%”
}
foreground.src = foregroundUrl
iframeWrapper.appendChild(foreground)
}

function createBackgroundElement(backgroundUrl, type) {
let backgroundElement = document.createElement(type);
backgroundElement.setAttribute(“src”,backgroundUrl);
backgroundElement.classList.add(“panorama__backgroundElement”);

if (“img” === type) {
backgroundElement.classList.add(“panorama__backgroundElement–img”);
}

return backgroundElement;
}

function createBackgroundWrapper(backgroundColor){
let backgroundWrapper = document.createElement(“div”)
backgroundWrapper.classList.add(‘panorama__backgroundWrapper’)
backgroundWrapper.style.backgroundColor=backgroundColor;
switch (pageBlock){
case “body”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–homepage’)
break;
case “text”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–article’)
break;
default:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–default’)
break;
}
return backgroundWrapper;
}

function createBackgroundClipper(){
let backgroundClipper = document.createElement(“div”)
backgroundClipper.classList.add(‘panorama__backgroundClipper’)
return backgroundClipper
}

function alignBackgroundToAdWrapper(backgroundToResize, sourceWrapper){
backgroundToResize.style.width = sourceWrapper.clientWidth+”px”;
if(pageBlock!==”body”) {
backgroundToResize.style(‘left’) = sourceWrapper.getBoundingClientRect().left+”px”;
}
}
}

LPAds.registerSpotReceived(slotName, function (slotData) {
if (slotData) {
if (LPAds.isProductGalleryAd(slotData.creativeTemplateId)) {
setUpProductGalleryAd();
} else if (LPAds.isNativeAd(slotData.creativeTemplateId)) {
setUpNativeAd();
} else if (LPAds.isNativeAdXtra(slotData.creativeTemplateId)) {
setUpNativeAdXtra();
}
}
});
LPAds.registerSpotRenderEnded(slotName, function(slotData) {
if (slotData) {
if (LPAds.isPanorama(slotData.creativeTemplateId)) {
setUpPanorama();
}else if (LPAds.isNativeAdSerieXtra(slotData.creativeTemplateId)) {
setUpNativeAdSerieXtra();
}
}
});

LPAds.displayAdSpot(slotName);
})()

Approximately 20 jets and projectors are installed at the bottom of this shallow pool to create a water and light show.

The new installation will be unveiled to the press on Thursday before opening to the public on April 13th, along with a ballet performance.

The Baths of Caracalla is an 11-hectare complex at the foot of the Aventine Hill that includes not only baths but also sports facilities and a library, and is one of the best-preserved baths in the Roman Empire.

(function () {
var slotName = “ad660f03ebc0da5-adSlotLppos”;
var dimensions = (“fluid”,(634,125),(634,150),(634,180),(634,200),(634,634),(634,400),(640,360),(640,480),(728,200));
var positionName = null;
var pageBlock = “text”;
const IS_MOBILE = window.innerWidth {
if (googleIframe.contentWindow === e.source){
if(e.data.nbArticles) {
let title = document.createElement(“div”)
let nbArticles = document.createElement(“div”)
title.innerHTML = “Série commanditée”
nbArticles.innerHTML = e.data.nbArticles + ” articles”
let header = document.createElement(“div”)
header.classList.add(“adSpotBlock__slotInnerHeader”)
header.appendChild(title)
header.appendChild(nbArticles)
slotInner.prepend(header)
}
}
})
}

function setUpPanorama() {
console.debug(‘Ads: Panorama Ad detected for ‘ + slotName);
let slotInner = document.getElementById(slotName);
slotInner.parentElement.style.width=”100%”;
let iframeWrapper = slotInner.firstElementChild
iframeWrapper.classList.add(‘panorama__wrapper’)
if (IS_MOBILE){
makeFullWidth(slotInner)
iframeWrapper.classList.add(‘panorama__wrapper–mobile’)
}
else{
iframeWrapper.classList.add(‘panorama__wrapper–default’)
if(pageBlock===”body”){
makeFullWidth(slotInner)
}
}
setupPanoramaIframe(iframeWrapper)

function makeFullWidth(slotInner){
let parentContainerElement = slotInner.closest(“.homeHeadlinesRow__adWrapper”)||slotInner.closest(“.homeRow__adWrapper”)||slotInner.closest(“.homeRow”)
if (!parentContainerElement){
parentContainerElement = slotInner.closest(“.adsWrapper”)
parentContainerElement.classList.add(“panorama–article”);
}else{
parentContainerElement.classList.add(“panorama–default”);
}
}

function setupPanoramaIframe(iframeWrapper){
let googleIframe = iframeWrapper.firstElementChild;
googleIframe.style.height = “100%”
window.addEventListener(‘message’, (e)=> {
if (googleIframe.contentWindow === e.source){
if(e.data.sideMarginBackgroundColor) {
iframeWrapper.style.backgroundColor = e.data.sideMarginBackgroundColor;
}
if(e.data.foregroundUrl){
createForeground(iframeWrapper,e.data.foregroundUrl,e.data.foregroundPosition,”img”)
}
if(e.data.foregroundHtmlUrl){
createForeground(iframeWrapper,e.data.foregroundHtmlUrl,e.data.foregroundPosition,”iframe”)
}
if(e.data.backgroundImgUrl){
createBackground(iframeWrapper,e.data.backgroundImgUrl,e.data.backgroundColor,”img”)
}
if(e.data.backgroundHtmlUrl){
createBackground(iframeWrapper,e.data.backgroundHtmlUrl,e.data.backgroundColor,”iframe”)
}
}
});
}

function createBackground(iframeWrapper,backgroundUrl,backgroundColor,backgroundElementType){
let backgroundElement = createBackgroundElement(backgroundUrl,backgroundElementType)
let backgroundWrapper = createBackgroundWrapper(backgroundColor)
let backgroundClipper = createBackgroundClipper()

backgroundWrapper.appendChild(backgroundElement)
backgroundClipper.appendChild(backgroundWrapper)
iframeWrapper.appendChild(backgroundClipper)

alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
let widthCache = window.innerWidth
window.addEventListener(“resize”,()=>{
if (window.innerWidth!==widthCache){
widthCache=window.innerWidth;
alignBackgroundToAdWrapper(backgroundWrapper, iframeWrapper)
}
})
}

function createForeground(iframeWrapper,foregroundUrl,foregroundPosition,type){
let foreground = document.createElement(type)
foreground.classList.add(“panorama__foregroundImg”)
switch (foregroundPosition){
case “top”:
foreground.style.alignSelf=”flex-start”
break;
case “center”:
foreground.style.alignSelf=”center”
break;
case “bottom”:
foreground.style.alignSelf=”flex-end”
break;
}
if (type===”iframe”){
foreground.style.height=”100%”
}
foreground.src = foregroundUrl
iframeWrapper.appendChild(foreground)
}

function createBackgroundElement(backgroundUrl, type) {
let backgroundElement = document.createElement(type);
backgroundElement.setAttribute(“src”,backgroundUrl);
backgroundElement.classList.add(“panorama__backgroundElement”);

if (“img” === type) {
backgroundElement.classList.add(“panorama__backgroundElement–img”);
}

return backgroundElement;
}

function createBackgroundWrapper(backgroundColor){
let backgroundWrapper = document.createElement(“div”)
backgroundWrapper.classList.add(‘panorama__backgroundWrapper’)
backgroundWrapper.style.backgroundColor=backgroundColor;
switch (pageBlock){
case “body”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–homepage’)
break;
case “text”:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–article’)
break;
default:
backgroundWrapper.classList.add(‘panorama__backgroundWrapper–default’)
break;
}
return backgroundWrapper;
}

function createBackgroundClipper(){
let backgroundClipper = document.createElement(“div”)
backgroundClipper.classList.add(‘panorama__backgroundClipper’)
return backgroundClipper
}

function alignBackgroundToAdWrapper(backgroundToResize, sourceWrapper){
backgroundToResize.style.width = sourceWrapper.clientWidth+”px”;
if(pageBlock!==”body”) {
backgroundToResize.style(‘left’) = sourceWrapper.getBoundingClientRect().left+”px”;
}
}
}

LPAds.registerSpotReceived(slotName, function (slotData) {
if (slotData) {
if (LPAds.isProductGalleryAd(slotData.creativeTemplateId)) {
setUpProductGalleryAd();
} else if (LPAds.isNativeAd(slotData.creativeTemplateId)) {
setUpNativeAd();
} else if (LPAds.isNativeAdXtra(slotData.creativeTemplateId)) {
setUpNativeAdXtra();
}
}
});
LPAds.registerSpotRenderEnded(slotName, function(slotData) {
if (slotData) {
if (LPAds.isPanorama(slotData.creativeTemplateId)) {
setUpPanorama();
}else if (LPAds.isNativeAdSerieXtra(slotData.creativeTemplateId)) {
setUpNativeAdSerieXtra();
}
}
});

LPAds.displayAdSpot(slotName);
})()