{"id":845,"date":"2026-10-01T20:36:00","date_gmt":"2026-10-01T18:36:00","guid":{"rendered":"https:\/\/lnx.marmotest.com\/?page_id=845"},"modified":"2026-10-05T18:42:06","modified_gmt":"2026-10-05T16:42:06","slug":"ricostruzione-3d-dei-blocchi","status":"publish","type":"page","link":"https:\/\/lnx.marmotest.com\/en\/consulenza-e-ispezioni-indipendenti\/ricostruzione-3d-dei-blocchi\/","title":{"rendered":"3D reconstruction of blocks"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"845\" class=\"elementor elementor-845\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000000 e-con-boxed e-flex e-con e-parent\" data-id=\"d3000000\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000001 elementor-widget elementor-widget-text-editor\" data-id=\"d3000001\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>ISPEZIONI INDIPENDENTI \u00b7 VALUTAZIONE DEI BLOCCHI<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000002 elementor-widget elementor-widget-heading\" data-id=\"d3000002\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ricostruzione 3D dei blocchi<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000003 elementor-widget elementor-widget-text-editor\" data-id=\"d3000003\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La ricostruzione geometrica tridimensionale, parziale o completa, documenta il blocco e offre un supporto tecnico a chi ne valuta l\u2019acquisto. Il modello permette di osservare le superfici rappresentate da diversi punti di vista e di condividere un riferimento geometrico durante l\u2019ispezione.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000004 elementor-widget elementor-widget-heading\" data-id=\"d3000004\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Ricostruzioni parziali e complete<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000005 elementor-widget elementor-widget-text-editor\" data-id=\"d3000005\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Una ricostruzione parziale riguarda le porzioni rilevate del blocco; una ricostruzione completa ne rappresenta l\u2019insieme delle superfici rilevate. L\u2019estensione del rilievo viene definita in relazione al blocco disponibile e alle esigenze della verifica.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000006 elementor-widget elementor-widget-heading\" data-id=\"d3000006\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Due esempi da esplorare<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000007 elementor-widget elementor-widget-text-editor\" data-id=\"d3000007\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Il modello viene fornito in formato <strong>PDF 3D<\/strong>, consultabile da chiunque con <strong>Adobe Acrobat Reader gratuito<\/strong>. Per esplorarlo in 3D, scarica il file e aprilo in Acrobat Reader. Puoi anche provare le anteprime qui sotto: trascina per ruotare il blocco e usa la rotella del mouse, oppure due dita, per ingrandirlo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000008 elementor-widget elementor-widget-heading\" data-id=\"d3000008\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Esempio 1<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000009 elementor-widget elementor-widget-html\" data-id=\"d3000009\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"mt-block-model\" data-front-basis='[-0.09616277211430556,0.7052378028406291,0.7024189367491559,-0.9912222339691523,-0.13217221734412285,-0.0029979739060159286,0.09072598384418472,-0.6965415611482638,0.7117574372274901]' data-model-zip=\"https:\/\/lnx.marmotest.com\/wp-content\/uploads\/2026\/10\/blocco-esempio-1-viewer.zip\" style=\"width:100%;border:1px solid #d8e1e6;border-radius:12px;overflow:hidden;background:#f0f4f6\">\n<model-viewer alt=\"Ricostruzione tridimensionale di un blocco lapideo, esempio 1\" camera-controls touch-action=\"pan-y\" camera-orbit=\"0deg 90deg auto\" field-of-view=\"35deg\" shadow-intensity=\"0.5\" exposure=\"1\" style=\"display:block;width:100%;height:520px;min-height:340px;background:linear-gradient(#e5edf2,#f7fafb)\"><\/model-viewer>\n<canvas role=\"img\" aria-label=\"Modello 3D del blocco, esempio 1. Trascina per ruotare o usa le frecce; premi pi\u00f9 o meno per lo zoom.\" tabindex=\"0\" style=\"display:none;width:100%;height:520px;touch-action:none;cursor:grab\"><\/canvas>\n<div style=\"padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap\"><button type=\"button\" style=\"padding:10px 16px;border:0;border-radius:4px;background:#172b42;color:#fff;cursor:pointer\">Ripristina vista<\/button><p role=\"status\" style=\"margin:0;color:#52636c;font-size:15px\">Caricamento del modello 3D\u2026<\/p><\/div><div style=\"padding:0 20px 20px\"><p style=\"margin:0 0 10px;font-size:19px;font-weight:700;color:#b42318\">Prova anche tu!<\/p><a href=\"https:\/\/lnx.marmotest.com\/wp-content\/uploads\/2026\/10\/modello-3d-blocco-parziale.pdf\" download=\"modello-3d-blocco-parziale.pdf\" style=\"display:inline-block;padding:12px 18px;border-radius:4px;background:#172b42;color:#fff;text-decoration:none;font-weight:700\">Scarica il PDF 3D \u2013 Esempio 1<\/a><p style=\"margin:10px 0 0;color:#52636c;font-size:15px\">Apri il file in Adobe Acrobat Reader gratuito per ruotare e ingrandire il modello.<\/p><\/div><\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000010 elementor-widget elementor-widget-heading\" data-id=\"d3000010\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Esempio 2<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000011 elementor-widget elementor-widget-html\" data-id=\"d3000011\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section class=\"mt-block-model\" data-front-basis='[-0.2333380387042615,0.972320719044698,0.012073897881394447,-0.9702309819418303,-0.233628692078738,0.06379244404918986,0.06484752403784945,0.003170733981258328,0.9978901467958186]' data-model-zip=\"https:\/\/lnx.marmotest.com\/wp-content\/uploads\/2026\/10\/blocco-esempio-2-viewer.zip\" style=\"width:100%;border:1px solid #d8e1e6;border-radius:12px;overflow:hidden;background:#f0f4f6\">\n<model-viewer alt=\"Ricostruzione tridimensionale di un blocco lapideo, esempio 2\" camera-controls touch-action=\"pan-y\" camera-orbit=\"0deg 90deg auto\" field-of-view=\"35deg\" shadow-intensity=\"0.5\" exposure=\"1\" style=\"display:block;width:100%;height:520px;min-height:340px;background:linear-gradient(#e5edf2,#f7fafb)\"><\/model-viewer>\n<canvas role=\"img\" aria-label=\"Modello 3D del blocco, esempio 2. Trascina per ruotare o usa le frecce; premi pi\u00f9 o meno per lo zoom.\" tabindex=\"0\" style=\"display:none;width:100%;height:520px;touch-action:none;cursor:grab\"><\/canvas>\n<div style=\"padding:16px 20px;display:flex;gap:16px;align-items:center;flex-wrap:wrap\"><button type=\"button\" style=\"padding:10px 16px;border:0;border-radius:4px;background:#172b42;color:#fff;cursor:pointer\">Ripristina vista<\/button><p role=\"status\" style=\"margin:0;color:#52636c;font-size:15px\">Caricamento del modello 3D\u2026<\/p><\/div><div style=\"padding:0 20px 20px\"><p style=\"margin:0 0 10px;font-size:19px;font-weight:700;color:#b42318\">Prova anche tu!<\/p><a href=\"https:\/\/lnx.marmotest.com\/wp-content\/uploads\/2026\/10\/modello-3d-blocco-lapideo.pdf\" download=\"modello-3d-blocco-lapideo.pdf\" style=\"display:inline-block;padding:12px 18px;border-radius:4px;background:#172b42;color:#fff;text-decoration:none;font-weight:700\">Scarica il PDF 3D \u2013 Esempio 2<\/a><p style=\"margin:10px 0 0;color:#52636c;font-size:15px\">Apri il file in Adobe Acrobat Reader gratuito per ruotare e ingrandire il modello.<\/p><\/div><\/section><script type=\"module\">\nfunction readStoredZip(buffer) {\n  const v = new DataView(buffer), entries = new Map();\n  let offset = 0;\n  while (offset + 30 <= buffer.byteLength && v.getUint32(offset,true) === 0x04034b50) {\n    if (v.getUint16(offset+8,true) !== 0) throw new Error('Formato archivio non supportato');\n    const size=v.getUint32(offset+18,true), nl=v.getUint16(offset+26,true), el=v.getUint16(offset+28,true);\n    const name=new TextDecoder().decode(new Uint8Array(buffer,offset+30,nl));\n    const start=offset+30+nl+el;\n    entries.set(name,buffer.slice(start,start+size));\n    offset=start+size;\n  }\n  if(!entries.has('model.glb')||!entries.has('preview.json'))throw new Error('Modello incompleto');\n  return entries;\n}\n\nfunction frontBasis(section){return JSON.parse(section.dataset.frontBasis);}\nfunction alignGLB(buffer,basis){\n const view=new DataView(buffer),jsonLength=view.getUint32(12,true);\n const data=JSON.parse(new TextDecoder().decode(new Uint8Array(buffer,20,jsonLength)));\n const matrix=[basis[0],basis[3],basis[6],0,basis[1],basis[4],basis[7],0,basis[2],basis[5],basis[8],0,0,0,0,1];\n for(const scene of data.scenes){const index=data.nodes.length;data.nodes.push({matrix,children:scene.nodes});scene.nodes=[index];}\n const json=new TextEncoder().encode(JSON.stringify(data)),padded=(json.length+3)&~3,tail=new Uint8Array(buffer,20+jsonLength);\n const result=new ArrayBuffer(20+padded+tail.length),out=new DataView(result),bytes=new Uint8Array(result);\n bytes.set(new Uint8Array(buffer,0,12));out.setUint32(8,result.byteLength,true);out.setUint32(12,padded,true);out.setUint32(16,0x4e4f534a,true);\n bytes.fill(32,20,20+padded);bytes.set(json,20);bytes.set(tail,20+padded);return result;\n}\nfunction softwareView(section, model) {\n  const viewer=section.querySelector('model-viewer');\n  viewer.style.display='none';\n  const canvas=section.querySelector('canvas');\n  canvas.style.display='block';\n  const ctx=canvas.getContext('2d',{alpha:false});\n  const p=new Float32Array(model.positions), faces=new Uint32Array(model.faces);\n  const colors=model.colors, projected=new Float32Array(p.length);\n  let yaw=0, pitch=0, zoom=1, pending=false;\n const basis=frontBasis(section);\n for(let i=0;i<p.length;i+=3){const x=p[i],y=p[i+1],z=p[i+2];p[i]=basis[0]*x+basis[1]*y+basis[2]*z;p[i+1]=basis[3]*x+basis[4]*y+basis[5]*z;p[i+2]=basis[6]*x+basis[7]*y+basis[8]*z;}\n  let radius=0;\n  for(let i=0;i<p.length;i+=3) radius=Math.max(radius,Math.hypot(p[i],p[i+1],p[i+2]));\n  const triangles=Array.from({length:faces.length\/3},(_,i)=>i);\n  function draw() {\n    pending=false;\n    const bounds=canvas.getBoundingClientRect(), w=Math.round(bounds.width),h=Math.round(bounds.height);\n    const dpr=Math.min(window.devicePixelRatio||1,1.5);\n    if(canvas.width!==Math.round(w*dpr)||canvas.height!==Math.round(h*dpr)){\n      canvas.width=Math.round(w*dpr);canvas.height=Math.round(h*dpr);\n    }\n    ctx.setTransform(dpr,0,0,dpr,0,0);\n    const bg=ctx.createLinearGradient(0,0,0,h);bg.addColorStop(0,'#e5edf2');bg.addColorStop(1,'#f7fafb');\n    ctx.fillStyle=bg;ctx.fillRect(0,0,w,h);\n    const scale=Math.min(w,h)*.44\/radius*zoom,cy=Math.cos(yaw),sy=Math.sin(yaw),cp=Math.cos(pitch),sp=Math.sin(pitch);\n    for(let i=0;i<p.length;i+=3){\n      const x=cy*p[i]+sy*p[i+2],z=-sy*p[i]+cy*p[i+2],y=cp*p[i+1]-sp*z;\n      projected[i]=w\/2+x*scale;projected[i+1]=h\/2-y*scale;projected[i+2]=sp*p[i+1]+cp*z;\n    }\n    const depth=t=>projected[faces[t*3]*3+2]+projected[faces[t*3+1]*3+2]+projected[faces[t*3+2]*3+2];\n    triangles.sort((a,b)=>depth(a)-depth(b));\n    for(const t of triangles){\n      const a=faces[t*3]*3,b=faces[t*3+1]*3,c=faces[t*3+2]*3;\n      ctx.beginPath();ctx.moveTo(projected[a],projected[a+1]);ctx.lineTo(projected[b],projected[b+1]);ctx.lineTo(projected[c],projected[c+1]);ctx.closePath();\n      ctx.fillStyle=colors[t];ctx.fill();ctx.strokeStyle=colors[t];ctx.lineWidth=.6;ctx.stroke();\n    }\n    canvas.dataset.yaw=String(yaw);canvas.dataset.zoom=String(zoom);\n  }\n  function schedule(){if(!pending){pending=true;requestAnimationFrame(draw);}}\n  const pointers=new Map();let previousDistance=0;\n  canvas.addEventListener('pointerdown',e=>{canvas.focus();pointers.set(e.pointerId,[e.clientX,e.clientY]);canvas.setPointerCapture(e.pointerId);});\n  canvas.addEventListener('pointermove',e=>{\n    if(!pointers.has(e.pointerId))return;\n    const last=pointers.get(e.pointerId);pointers.set(e.pointerId,[e.clientX,e.clientY]);\n    if(pointers.size===1){yaw+=(e.clientX-last[0])*.006;pitch=Math.max(-1.45,Math.min(1.45,pitch+(e.clientY-last[1])*.006));}\n    else {const [a,b]=Array.from(pointers.values());const distance=Math.hypot(a[0]-b[0],a[1]-b[1]);if(previousDistance)zoom=Math.max(.35,Math.min(5,zoom*distance\/previousDistance));previousDistance=distance;}\n    schedule();\n  });\n  const end=e=>{pointers.delete(e.pointerId);previousDistance=0;};\n  canvas.addEventListener('pointerup',end);canvas.addEventListener('pointercancel',end);\n  canvas.addEventListener('wheel',e=>{e.preventDefault();zoom=Math.max(.35,Math.min(5,zoom*Math.exp(-e.deltaY*.001)));schedule();},{passive:false});\n  canvas.addEventListener('keydown',e=>{\n    if(!['ArrowLeft','ArrowRight','ArrowUp','ArrowDown','+','-','='].includes(e.key))return;\n    e.preventDefault();\n    if(e.key==='ArrowLeft')yaw-=.12;if(e.key==='ArrowRight')yaw+=.12;\n    if(e.key==='ArrowUp')pitch=Math.max(-1.45,pitch-.12);if(e.key==='ArrowDown')pitch=Math.min(1.45,pitch+.12);\n    if(e.key==='+'||e.key==='=')zoom=Math.min(5,zoom*1.15);if(e.key==='-')zoom=Math.max(.35,zoom\/1.15);\n    schedule();\n  });\n  section.querySelector('button').addEventListener('click',()=>{yaw=0;pitch=0;zoom=1;schedule();});\n  new ResizeObserver(schedule).observe(canvas);\n  section.querySelector('[role=\"status\"]').textContent='Modello pronto. Trascina per ruotare; usa la rotella o due dita per lo zoom.';\n  section.dataset.loaded='true';section.dataset.renderer='canvas';draw();\n}\n\nlet webgl=false;\ntry{\n  const probe=document.createElement('canvas'),gl=probe.getContext('webgl2');\n  webgl=!!gl;gl?.getExtension('WEBGL_lose_context')?.loseContext();\n}catch(error){webgl=false;}\nif(webgl){\n  try{await import('https:\/\/ajax.googleapis.com\/ajax\/libs\/model-viewer\/4.3.1\/model-viewer.min.js');await customElements.whenDefined('model-viewer');}\n  catch(error){webgl=false;}\n}\nfor(const section of document.querySelectorAll('.mt-block-model')){\n  const status=section.querySelector('[role=\"status\"]');\n  try{\n    const response=await fetch(section.dataset.modelZip);\n    if(!response.ok)throw new Error('Modello non disponibile');\n    const entries=readStoredZip(await response.arrayBuffer());\n    const fallback=()=>softwareView(section,JSON.parse(new TextDecoder().decode(entries.get('preview.json'))));\n    if(!webgl){fallback();continue;}\n    const viewer=section.querySelector('model-viewer');\n    viewer.addEventListener('load',()=>{status.textContent='Modello pronto. Trascina per ruotare; usa la rotella o due dita per lo zoom.';section.dataset.loaded='true';section.dataset.renderer='webgl';},{once:true});\n    viewer.addEventListener('error',fallback,{once:true});\n    section.querySelector('button').addEventListener('click',()=>{viewer.cameraTarget='auto auto auto';viewer.cameraOrbit='0deg 90deg auto';viewer.fieldOfView='35deg';});\n    viewer.src=URL.createObjectURL(new Blob([alignGLB(entries.get('model.glb'),frontBasis(section))],{type:'model\/gltf-binary'}));\n  }catch(error){status.textContent='Caricamento non riuscito. Ricarica la pagina per riprovare.';console.error(error);}\n}\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000012 elementor-widget elementor-widget-heading\" data-id=\"d3000012\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Un supporto all\u2019ispezione prima dell\u2019acquisto<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d3000013 elementor-widget elementor-widget-text-editor\" data-id=\"d3000013\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>La documentazione tridimensionale affianca le osservazioni sul blocco e le fotografie, rendendo pi\u00f9 chiara la comunicazione tra acquirente, fornitore e tecnico incaricato. Il modello descrive le superfici rilevate; le caratteristiche interne e le prestazioni del materiale richiedono valutazioni specifiche.<\/p><p>Per definire l\u2019ispezione e la ricostruzione del blocco: <a href=\"mailto:info@marmotest.com\">info@marmotest.com<\/a>.<\/p><p><a href=\"https:\/\/lnx.marmotest.com\/consulenza-e-ispezioni-indipendenti\/\">Torna alle ispezioni indipendenti<\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ISPEZIONI INDIPENDENTI \u00b7 VALUTAZIONE DEI BLOCCHI Ricostruzione 3D dei blocchi La ricostruzione geometrica tridimensionale, parziale o completa, documenta il blocco e offre un supporto tecnico a chi ne valuta l\u2019acquisto. Il modello permette di osservare le superfici rappresentate da diversi punti di vista e di condividere un riferimento geometrico durante l\u2019ispezione. Ricostruzioni parziali e complete [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":646,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"_siteseo_robots_primary_cat":"","footnotes":""},"folder":[],"class_list":["post-845","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/pages\/845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/comments?post=845"}],"version-history":[{"count":4,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/pages\/845\/revisions"}],"predecessor-version":[{"id":2132,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/pages\/845\/revisions\/2132"}],"up":[{"embeddable":true,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/pages\/646"}],"wp:attachment":[{"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/media?parent=845"}],"wp:term":[{"taxonomy":"folder","embeddable":true,"href":"https:\/\/lnx.marmotest.com\/en\/wp-json\/wp\/v2\/folder?post=845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}