{
  "titolo": "Morlana - traversa, monte, ponte e sponda",
  "versione": "2026-10-22 — muro in calcestruzzo fra centralina e fiume",
  "geometrie": [
    "project-geometry.json",
    "bank-geometry.json",
    "bridge-context.json",
    "presentation-revisions.json",
    "hydropower-context.json"
  ],
  "rilievi": "terrain-manifest.json",
  "tavole": [
    {
      "id": "D02",
      "file": "Perizia/PDF 17-06-2026/D02-1_Tracciamento.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D03a",
      "file": "Perizia/PDF 17-06-2026/D03a-1_Sezioni long.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D04a",
      "file": "Perizia/PDF 17-06-2026/D04a-1_Sezioni trarversali-1-2.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D04b",
      "file": "Perizia/PDF 17-06-2026/D04b-1_Sezioni trarversali-2-2.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D06a",
      "file": "Perizia/PDF 17-06-2026/D06a-1_Particolari rivestimento alveo.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D06b",
      "file": "Perizia/PDF 17-06-2026/D06b-1_Particolari traversa e sponda sinistra.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "D08",
      "file": "Perizia/PDF 17-06-2026/D08-1_Pianta strutture in c.a..pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "R01",
      "file": "Perizia/PDF 17-06-2026/R01-1 Rel Generale.pdf",
      "page": 1,
      "revisionContext": "Perizia, cartella PDF17-06-2026; tavole datate novembre2025"
    },
    {
      "id": "T8A",
      "file": "Doc.Gara_EUMorlana2023/Tav. 8A - Sezioni trasversali tratto a monte - Stato di progetto.pdf",
      "page": 1,
      "date": "Febbraio 2024",
      "evidence": "Riempimento ciclopico q314; piano posa q313; poligono rosso in ortofoto. Quote originali, nessuna conversione di datum."
    },
    {
      "id": "T5",
      "file": "Doc.Gara_EUMorlana2023/Tav. 5 - Planimetria topografia - Stato di progetto.pdf",
      "page": 1,
      "evidence": "Continuita del riempimento a monte con traversa; pianta assi esistenti."
    },
    {
      "id": "V2PLAN",
      "file": "Perizia 2/Tav.2_SDP_Plan_Perizia_N.2.pdf",
      "page": 1,
      "date": "Settembre 2026",
      "evidence": "Tracciato rosso nuova scogliera, progressive0/37.50/72.10; raccordo alle difese esistenti."
    },
    {
      "id": "V2SECT",
      "file": "Perizia 2/Tav.2.1_SDP_Sezioni_Trasv_con_tempi_di_ritorno_Perizia_N.2.pdf",
      "page": 1,
      "date": "Settembre 2026",
      "evidence": "Cresta315.40; piede313.90/314.05; scarpata75gradi; fondazione~2.30m larga e~1m profonda; massi a secco sopra."
    },
    {
      "id": "V2REPORT",
      "file": "Perizia 2/Relazione integrativa alla perizia di variante n°2_agg_.pdf",
      "pages": [
        1,
        2
      ],
      "evidence": "Circa80m di difesa, arretrata~2m dopo20-08-2026; fondazione in massi intasati nel cls, parte superiore a secco; vegetazione conservata. Funzione antierosiva, non argine di contenimento delle piene."
    },
    {
      "id": "V1PLAN",
      "file": "Perizia/PDF 17-06-2026/2_Tracciamento Paratia - perizia di variante.pdf",
      "page": 1,
      "date": "Maggio 2026",
      "evidence": "Paratia L42m, P1/P2, asse pali a0.80m da riferimenti, luce pista2m."
    },
    {
      "id": "V1SECT",
      "file": "Perizia/PDF 17-06-2026/2_Paratia Pianta e Sezioni - perizia di variante.pdf",
      "page": 1,
      "date": "Maggio 2026",
      "evidence": "Micropali d0.20,L12,i0.33; inclinati15gradi i1.67; cordolo1.00x0.80; paramento massi cementati e strato vegetale."
    },
    {
      "id": "D06b",
      "file": "Perizia/PDF 17-06-2026/D06b-1_Particolari traversa e sponda sinistra.pdf",
      "page": 1,
      "evidence": "Sponda sinistra: massi cementati inferiori, rivestimento vegetale30cm superiore, drenaggio."
    },
    {
      "id": "ORTHO2026",
      "file": "VOLO DRONE MAR_2026 - TRE/Estratto ortofoto_Drone_Marzo26.tif",
      "evidence": "Contesto visivo della protezione esistente presso il ponte; geometria semplificata, quota indicativa."
    }
  ],
  "ponte": {
    "ortofoto": "VOLO DRONE MAR_2026 - TRE/Estratto ortofoto_Drone_Marzo26.tif",
    "foto": [
      "VOLO DRONE OTT_2025 - DUE/foto 2025-10-16/DJI_0278.JPG",
      "VOLO DRONE OTT_2025 - DUE/foto 2025-10-16/DJI_0272.JPG"
    ],
    "metodo": "Context-only simplified visual reconstruction; not surveyed bridge design or as-built geometry",
    "quota": "Context illustration only. A rounded display elevation selected from indicative relative relief; not verified against the project datum. Never label as surveyed elevation."
  },
  "coordinate": {
    "horizontal": "UTM32N, as labelled project coordinates; exact EPSG/datum to verify",
    "vertical": "project_zero_hydropower_right_bank",
    "verticalOffsetApplied": 0,
    "suggestedProjectToMeanSeaLevelOffset": -1.173,
    "offsetStatus": "requires_confirmation_with_survey_benchmarks",
    "evidence": [
      "D02 note3: project altitudes differ1.17m from mean sea level.",
      "R01 states absolute altitude at -1.173m relative to conventional quota; later conclusion describes314.20 as s.l.m. This notation requires confirmation."
    ],
    "renderingInstruction": "Do not silently treat zProject as surveyed absolute altitude. Keep zOffset adjustable and labelled until confirmed."
  },
  "registrazione_geometrie_aggiuntive": {
    "upstreamPhoto": {
      "method": "Affine visual registration of5 shared structures",
      "rmsResidualMetres": 2.7623976401505166,
      "maxResidualMetres": 3.6921972532734864,
      "maskSource": "Tav8A embedded image1, rotated90deg; offset1141,598.667 relative to embedded ortho",
      "traversaJoinOriginal": [
        561010.061,
        5066468.522,
        314.0
      ],
      "traversaJoinSnapped": [
        561009.124,
        5066467.089,
        314.0
      ]
    },
    "variant2": {
      "method": "Native vector traces, approximate manual ties to shared A1/A2/A3/A4 corners; do not interpret fitted residual as survey precision",
      "pageToLocalEN": [
        [
          0.07041090759142257,
          0.000220072845447973
        ],
        [
          0.0001529838491748127,
          -0.07072211918231744
        ],
        [
          -74.85878966271231,
          220.43801606244327
        ]
      ],
      "expectedRegistrationAccuracy": "order1–3m until CAD/topographic control confirmed"
    },
    "micropiles": {
      "method": "Native PDF circle centres calibrated to8 shared printed controls",
      "rmsResidualMetres": 0.002272335032699455,
      "maxResidualMetres": 0.004965452915404181,
      "P1": [
        561020.702,
        5066464.956,
        315.4
      ],
      "P2": [
        560980.616,
        5066427.315,
        314.5
      ],
      "P1P2Metres": 54.98847403763739,
      "actualCurtainLength": 42.0,
      "note": "Residual measures consistency of drawings, not field accuracy."
    }
  },
  "limiti": [
    "This is a public interpretation model, not a construction or as-built model.",
    "Native DWG geometry not decoded; checked PDF vectors and printed dimensions are the basis.",
    "Existing A/B/C horizontal positions are derived by PDF calibration; labelled D/E/F/G/H coordinates are direct transcription.",
    "C2 has an overlapping coordinate callout labelled E1 in D02. Its unique E/N pair is retained under C2.",
    "Axes are simplified by joining labelled control points; smooth bends between them are not reconstructed.",
    "Jet count and position between labelled endpoints are illustrative spacing-based placements, not surveyed individual columns.",
    "Existing column lengths vary and are incompletely labelled; preview lengths must not be used for quantity or engineering calculations.",
    "Steel reinforcing tubes differ between D03a(D1-D3:114.3mm,L6.5m) and D06b(101.6mm,L5m); omitted from geometry.",
    "Construction phases are explanatory groupings, not a verified dated programme.",
    "No engineering verification, setting-out or as-built claim.",
    "Fasi sono gruppi esplicativi: non certificano la sequenza o le date reali di cantiere.",
    "Il riempimento nuovo si arresta presso la protezione esistente del ponte: le due geometrie sono separate.",
    "Riferimenti altimetrici tra le tavole originali, la variante2 e i voli ancora da confermare.",
    "La variante2 gia incorpora arretramento~2m: non traslare ulteriormente il tracciato.",
    "Geometrie di contesto, tracciati fotografici e raccordi di terreno restano semplificati.",
    "All plan traces are digitised from orthophoto, not extracted CAD bridge geometry.",
    "Ten-centimetre image pixels do not imply ten-centimetre positional accuracy.",
    "No vertical datum transformation has been confirmed or applied to these context traces.",
    "No bridge structural analysis, design verification or load capacity is implied.",
    "Perimetro illustrativo definito su indicazione dell’utente; non è una nuova estrazione CAD o una variante progettuale verificata. I raccordi mantengono la quota illustrativa del modello precedente. Dimensioni e numero dei massi non utilizzabili per quantità."
  ],
  "epoche": [
    {
      "id": "2022",
      "label": "Agosto 2022",
      "dateEvidence": "Nome del file ortofoto: agosto22",
      "texture": {
        "file": "ortho-2022.jpg",
        "source": "tavole/01_Nembro_orthophoto_agosto22_utm32.tif",
        "bounds": {
          "xmin": 560875.1895700007,
          "xmax": 561134.0689751046,
          "nmin": 5066395.786431325,
          "nmax": 5066663.690990001
        },
        "sourcePixels": [
          4905,
          5076
        ],
        "pixels": [
          2474,
          2560
        ],
        "sourcePixelSizeMetres": [
          0.05277867586215223,
          0.052778675862154255
        ],
        "crs": "EPSG:32632",
        "pixelInterpretation": "area",
        "orientation": "Image top is north; image left is west",
        "uvFormula": "u=(E-xmin)/(xmax-xmin); v=(N-nmin)/(nmax-nmin); THREE.TextureLoader default flipY=true"
      },
      "hasNumericTerrain": false,
      "terrain": null,
      "displayMode": "flat-orthophoto-only"
    },
    {
      "id": "2024",
      "label": "Novembre 2024",
      "dateEvidence": "Cartella VOLO DRONE NOV_2024 - UNO; sezioni successive riportano TERRENO NOV24. Il percorso interno INCARICO 2025 non e una data di acquisizione verificata.",
      "texture": {
        "file": "ortho-2024.jpg",
        "source": "VOLO DRONE NOV_2024 - UNO/Planimetria con tracce Sezioni Volo_zero_rev01.DWG - STANDARD/INCARICO 2025/Estratto ortofoto_Drone.tif",
        "bounds": {
          "xmin": 560855.9976790153,
          "xmax": 561120.7176790152,
          "nmin": 5066365.403455824,
          "nmax": 5066652.183455824
        },
        "sourcePixels": [
          13236,
          14339
        ],
        "pixels": [
          2363,
          2560
        ],
        "sourcePixelSizeMetres": [
          0.019999999999997888,
          0.020000000000018187
        ],
        "crs": "EPSG:32632",
        "pixelInterpretation": "area",
        "orientation": "Image top is north; image left is west",
        "uvFormula": "u=(E-xmin)/(xmax-xmin); v=(N-nmin)/(nmax-nmin); THREE.TextureLoader default flipY=true"
      },
      "hasNumericTerrain": false,
      "terrain": null,
      "displayMode": "flat-orthophoto-only"
    },
    {
      "id": "2025",
      "label": "Ottobre 2025",
      "dateEvidence": "Nomi file e cartella del rilievo: ottobre 2025; sezioni TERRENO OTT25",
      "texture": {
        "file": "ortho-2025.jpg",
        "source": "VOLO DRONE OTT_2025 - DUE/Estratto ortofoto_Drone_ott25.tif",
        "bounds": {
          "xmin": 560855.998,
          "xmax": 561120.718,
          "nmin": 5066365.383,
          "nmax": 5066652.183
        },
        "sourcePixels": [
          6618,
          7170
        ],
        "pixels": [
          2363,
          2560
        ],
        "sourcePixelSizeMetres": [
          0.039999999999995775,
          0.03999999999997402
        ],
        "crs": "EPSG:32632",
        "pixelInterpretation": "area",
        "orientation": "Image top is north; image left is west",
        "uvFormula": "u=(E-xmin)/(xmax-xmin); v=(N-nmin)/(nmax-nmin); THREE.TextureLoader default flipY=true"
      },
      "hasNumericTerrain": true,
      "terrain": "terrain-2025.json",
      "terrainBounds": {
        "xmin": 560856.197926864,
        "xmax": 561120.5012410139,
        "nmin": 5066365.687926864,
        "nmax": 5066651.983196049
      },
      "terrainHeightRange": [
        307.409,
        338.625
      ]
    },
    {
      "id": "2026",
      "label": "Marzo 2026",
      "dateEvidence": "Nomi file e cartella del rilievo: marzo 2026; sezioni TERRENO MAR26",
      "texture": {
        "file": "ortho-2026.jpg",
        "source": "VOLO DRONE MAR_2026 - TRE/Estratto ortofoto_Drone_Marzo26.tif",
        "bounds": {
          "xmin": 560746.9303518458,
          "xmax": 561205.9303518458,
          "nmin": 5066272.00955387,
          "nmax": 5066720.30955387
        },
        "sourcePixels": [
          4590,
          4483
        ],
        "pixels": [
          2560,
          2500
        ],
        "sourcePixelSizeMetres": [
          0.1,
          0.09999999999995846
        ],
        "crs": "EPSG:32632",
        "pixelInterpretation": "area",
        "orientation": "Image top is north; image left is west",
        "uvFormula": "u=(E-xmin)/(xmax-xmin); v=(N-nmin)/(nmax-nmin); THREE.TextureLoader default flipY=true"
      },
      "hasNumericTerrain": true,
      "terrain": "terrain-2026.json",
      "terrainBounds": {
        "xmin": 560858.686,
        "xmax": 561124.086,
        "nmin": 5066367.362,
        "nmax": 5066663.762
      },
      "terrainHeightRange": [
        307.688,
        336.724
      ]
    }
  ],
  "nota": "Ricostruzione divulgativa con geometrie di progetto e contesto schematico. Include riempimento a monte, protezione esistente sotto il ponte, passerella, percorsi, scogliera della variante 2, raccordi spondali e paratia di cantiere. Riferimenti verticali ancora da riconciliare. Non usare per tracciamento, misure esecutive o quantita.",
  "revisione_divulgativa": {
    "schemaVersion": 1,
    "id": "USER-2026-10-12-UPSTREAM",
    "date": "2026-10-12",
    "sourceType": "user_instruction_for_visual_model",
    "description": "Estensione del ciclopico a tutta la larghezza dell’alveo dallo scivolo alla passerella, comprese le zone prima vuote sul lato sinistro della vista. Massi più grandi, meno numerosi e tutti bianchi, anche nella protezione esistente presso il ponte.",
    "accuracy": "Perimetro illustrativo definito su indicazione dell’utente; non è una nuova estrazione CAD o una variante progettuale verificata. I raccordi mantengono la quota illustrativa del modello precedente. Dimensioni e numero dei massi non utilizzabili per quantità.",
    "stoneAppearance": {
      "spacingMetres": 3,
      "color": "#ffffff",
      "individualDimensions": "illustrative"
    },
    "surfaceOverrides": {
      "upstream_cyclopic_fill": {
        "vertices": [
          [
            561034.951,
            5066622.567,
            314
          ],
          [
            561010,
            5066608,
            314
          ],
          [
            560988,
            5066582,
            314
          ],
          [
            560973,
            5066556,
            314
          ],
          [
            560954.361,
            5066523.425,
            314
          ],
          [
            560979.884,
            5066510.068,
            314
          ],
          [
            560974.275,
            5066501.918,
            314
          ],
          [
            561009.124,
            5066467.089,
            314
          ],
          [
            561015.249,
            5066471.435,
            314
          ],
          [
            561018.49,
            5066480.853,
            314
          ],
          [
            561021.892,
            5066489.91,
            314
          ],
          [
            561024.514,
            5066496.428,
            314
          ],
          [
            561030.047,
            5066506.977,
            314
          ],
          [
            561034.498,
            5066515.537,
            314
          ],
          [
            561038.79,
            5066523.774,
            314
          ],
          [
            561044.525,
            5066538.118,
            314
          ],
          [
            561054.5,
            5066555.25,
            314
          ],
          [
            561070.5,
            5066572.25,
            314
          ],
          [
            561062.44,
            5066579.473,
            314
          ],
          [
            561056.455,
            5066589.895,
            314
          ],
          [
            561051.056,
            5066595.865,
            314
          ],
          [
            561043.172,
            5066606.451,
            314
          ],
          [
            561039.085,
            5066616.707,
            314
          ],
          [
            561036.601,
            5066621.323,
            314
          ]
        ],
        "stoneStyle": "large-white",
        "sourceIds": [
          "T8A",
          "USER-2026-10-12-UPSTREAM"
        ],
        "presentationRevision": "USER-2026-10-12-UPSTREAM",
        "accuracy": "Perimetro esteso su indicazione dell’utente rispetto alla Tav.8A; da verificare sulle tavole."
      },
      "existing_bridge_rock_blanket": {
        "vertices": [
          [
            561034.951,
            5066622.567,
            314
          ],
          [
            561062,
            5066635,
            314.2
          ],
          [
            561100.5,
            5066585.25,
            314.2
          ],
          [
            561070.5,
            5066572.25,
            314
          ],
          [
            561062.44,
            5066579.473,
            314
          ],
          [
            561056.455,
            5066589.895,
            314
          ],
          [
            561051.056,
            5066595.865,
            314
          ],
          [
            561043.172,
            5066606.451,
            314
          ],
          [
            561039.085,
            5066616.707,
            314
          ],
          [
            561036.601,
            5066621.323,
            314
          ]
        ],
        "stoneStyle": "large-white",
        "sourceIds": [
          "ORTHO2026",
          "USER-2026-10-12-UPSTREAM"
        ],
        "presentationRevision": "USER-2026-10-12-UPSTREAM",
        "accuracy": "Protezione esistente schematica, raccordata al riempimento, resa con massi grandi bianchi su indicazione dell’utente."
      }
    },
    "downstreamAppearance": {
      "date": "2026-10-12",
      "description": "Pietrame del riempimento a valle reso bianco, mantenendo geometria e dimensioni.",
      "sourceType": "user_instruction_for_visual_model"
    }
  },
  "quantita_documentali": {
    "source": "Doc.Gara_EUMorlana2023/09 - Computo metrico.pdf",
    "file": "project-quantities.json",
    "status": "Computo originario febbraio 2024; quantità previste, non eseguite certificate",
    "pdfPages": [
      3,
      7,
      16
    ]
  },
  "acqua_illustrativa": {
    "status": "Animazione divulgativa; livelli, velocità e spruzzi non derivano da calcoli idraulici",
    "description": "Correnti, scorrimento sullo scivolo A4-A3 verso C2-C1, cascatella sul muro A2-A1 e schiuma a valle",
    "reducedMotion": "Animazione ferma quando il dispositivo richiede movimento ridotto",
    "attivazione": "Attiva all’apertura; preferenza conservata durante la vista sotto alveo, che nasconde temporaneamente l’acqua. Ritorno alla vista normale al termine della sequenza delle fasi."
  },
  "dettaglioGrafico": {
    "ortofotoLatoMassimoPixel": 4096,
    "passoRilievoHDMetri": 0.5,
    "passoRilievoStandardMetriCirca": 1.6,
    "origine": "TIFF georeferenziati e griglie ASC originali; nessuna correzione verticale o riempimento dei vuoti.",
    "materiali": "Grana, rugosità e smussi sono finiture illustrative; la forma dei massi non deriva da una scansione dei singoli elementi.",
    "qualita": "Alta di default su desktop compatibili, leggera sui telefoni; selezione HD manuale. Rilievi HD caricati solo per la vista corrente.",
    "parametriProgetto": "Allineamenti delle opere principali conservati; rivestimento e disposizione dei massi della scogliera a valle, nel solo tratto corto accanto alla traversa, aggiornati su indicazione del referente e documentati in presentation-revisions.json."
  },
  "revisioneScogliere": {
    "downstream_left_bank_cemented": {
      "stoneStyle": "white-cemented",
      "upperSurfaceIds": [
        "downstream_vegetated_bank_0",
        "downstream_vegetated_bank_1",
        "downstream_vegetated_bank_2"
      ],
      "presentationRevision": "USER-2026-10-12-WHITE-CEMENTED-BANK",
      "appearanceSource": "Indicazione del referente: scogliera a destra bianca, cementata fra i massi e rivestita fino in cima.",
      "accuracy": "Revisione grafica: rivestimento esteso alle superfici superiori già presenti nel modello. Originali di rilievo e tavola conservati; non è una variante esecutiva verificata."
    }
  },
  "arrediIllustrativi": {
    "id": "USER-2026-10-12-PATH-BENCHES",
    "sourceType": "user_instruction_for_visual_model",
    "description": "Pista ciclopedonale più leggibile: pavimentazione calda, bordi chiari, simboli bici e pedone; tre panchine in legno e metallo su piazzole laterali, rivolte al fiume.",
    "pathId": "left-bank-downstream",
    "benchStationsMetres": [
      28,
      58,
      89
    ],
    "accuracy": "Finiture e arredi proposti per la presentazione; non sono elementi rilevati o quantità di progetto. Tracciato e larghezza del percorso originario conservati."
  },
  "resaRealistica": {
    "ambito": "Traversa, cascatella, protezioni a valle e sola scogliera corta bianca cementata accanto alla traversa",
    "materiali": "Texture fotografiche CC0 di calcestruzzo e rilievo roccioso; dettaglio fino a 2048 pixel, normale e rugosità; luce ambientale HDR",
    "provenienza": "realism/sources.json",
    "acqua": "Riflessi del cielo, increspature animate, velo della cascatella e schiuma; effetto illustrativo senza portate o livelli verificati",
    "geometria": "Finitura illustrativa dei singoli massi: superfici più sfaccettate, lieve variazione della posa nel solo tratto corto bianco. Allineamenti strutturali conservati",
    "limiti": "Finiture illustrative: non è una ricostruzione fotogrammetrica del sito. Materiali e cielo di riferimento non provengono dal luogo.",
    "prestazioni": "Materiali caricati all’apertura; geometrie adattate alla qualità HD/leggera.",
    "esportazione": "Il GLB esporta il modello divulgativo standard; gli effetti di luce, bagnatura e acqua della prova restano nel sito",
    "attivazione": "Automatica in tutte le viste del progetto. Nessun selettore Prima / Dopo; la vista delle fondazioni mantiene la trasparenza tecnica."
  },
  "navigazione": {
    "punti": [
      "Davanti alla cascatella",
      "Scivolo della traversa",
      "Scogliera bassa di sponda sinistra",
      "Dalla passerella",
      "Ciclopico a monte",
      "Pista e panchina",
      "Muro e barriera corten"
    ],
    "comandi": "Pulsanti con transizione della vista; frecce per muoversi sul piano orizzontale, zoom +/−, scelta diretta di una superficie tramite click o tocco. Trascinamento per ruotare e pulsante per tornare alla vista d’insieme.",
    "coordinate": "Punti di osservazione illustrativi nello spazio del modello; non sono posizioni GNSS né un rilievo di percorsi reali. Il punto scelto dall’utente coincide con l’intersezione sulla superficie 3D visibile.",
    "collegamenti": "Parametro point: waterfall, slide, white-bank, bridge, cyclopic, bench, connection."
  },
  "raccordoPistaCorten": {
    "id": "USER-2026-10-12-PATH-BEHIND-CORTEN",
    "sourceType": "user_instruction_for_visual_model",
    "description": "Pista ciclopedonale prolungata dietro la barriera per tutta la lunghezza del muro sopra i massi bianchi, con pavimentazione, bordi e sottofondo continui. Barriera sul coronamento e risvolto sul muro di raccordo conservati nella posizione approvata dal referente.",
    "pathId": "left-bank-downstream",
    "extensionPoints": [
      [
        561027,
        5066473,
        315.4
      ],
      [
        561019,
        5066466,
        315.4
      ],
      [
        561012.947,
        5066459.762,
        315.46
      ],
      [
        561005.092,
        5066452.083,
        315.27
      ],
      [
        560998.466,
        5066444.473,
        315.07
      ],
      [
        560990.155,
        5066436.123,
        314.81
      ]
    ],
    "fenceEnd": [
      561011.818,
      5066460.931,
      315.4
    ],
    "wallStart": [
      561015.991,
      5066472.116,
      315.4
    ],
    "heightIllustrativeMetres": 1.15,
    "accuracy": "Raccordo e recinzione rappresentati su indicazione del referente; tracciato di dettaglio, quote intermedie, altezza e profili della recinzione sono illustrativi, non una nuova estrazione delle tavole.",
    "fenceAlignment": [
      [
        560989.127,
        5066437.146,
        314.72999999999996
      ],
      [
        560997.404,
        5066445.462,
        314.96
      ],
      [
        561004.037,
        5066453.079,
        315.19
      ],
      [
        561011.933,
        5066460.799,
        315.41999999999996
      ],
      [
        561015.991,
        5066472.116,
        315.46
      ]
    ],
    "fenceAlignmentSource": "Centro del coronamento del muro lungo, ricavato dalle superfici superiori già nel modello, e termine sul muro di raccordo.",
    "pathExtensionSource": "Prolungamento illustrativo su indicazione del referente; asse scostato verso terra dalla recinzione approvata. Quote raccordate alla sommità del cordolo esistente per evitare compenetrazioni della pavimentazione. Non è un rilievo né una verifica della sezione del percorso."
  },
  "monitoraggio": {
    "data": "2026-10-20",
    "pagina": "/",
    "vistaUnificata": "Un solo ingresso con 3D a piena finestra, barra superiore, panoramica, statistiche, opera e fasi, sensori, rilievi, confronto e viaggio drone. Il precedente parametro view=monitor è compatibile e viene rimosso dall'indirizzo.",
    "stato": "Dashboard dimostrativa con statistiche di sessione, configurazione dei sensori e adattatore JavaScript per le letture; API di rete non ancora collegate.",
    "statistiche": {
      "origine": "Solo letture effettivamente osservate durante la sessione del browser, separate fra demo e API; nessun riempimento con dati storici inventati.",
      "campioniMassimiPerSensore": 1800,
      "metriche": [
        "ultimo valore",
        "minimo",
        "massimo",
        "media",
        "variazione fra primo e ultimo",
        "numero di campioni"
      ],
      "finestre": [
        "sessione",
        "ultimi 5 minuti",
        "ultimi 15 minuti"
      ],
      "campi": [
        "livello in metri",
        "inclinazioni MEMS X/Y/Z in gradi"
      ],
      "persistenza": "Memoria della pagina; ricarica, cambio modalità o modifica della configurazione avviano una nuova raccolta. Nessun archivio condiviso.",
      "esportazione": "CSV con timestamp UTC, origine, sensore, tipo e valori della finestra selezionata; campi testuali protetti dall’interpretazione come formule.",
      "rete": "Dati recenti, non aggiornati o in attesa: classificazione della freschezza della lettura, non stato strutturale o allarme."
    },
    "tipiSensori": {
      "mems": {
        "campi": [
          "tiltX",
          "tiltY",
          "tiltZ"
        ],
        "obbligatori": [
          "tiltX",
          "tiltY"
        ],
        "unita": "gradi",
        "visualizzati": [
          "tiltX",
          "tiltY"
        ],
        "nota": "Inclinazioni, non spostamenti in millimetri. Soglie di allarme non definite."
      },
      "level": {
        "campi": [
          "level"
        ],
        "unita": "metri rispetto al riferimento dell'idrometro",
        "massimoSensori": 1
      }
    },
    "configurazione": "Posizionamento tramite selezione di una superficie 3D o inserimento Est/Nord/quota di progetto. I quattro punti di esempio sono illustrativi, non installazioni rilevate.",
    "persistenza": {
      "tipo": "localStorage del browser per origine del sito",
      "chiave": "morlana.monitoring.config.v1",
      "condivisaSulServer": false,
      "esportazione": "Configurazione JSON, senza letture o credenziali",
      "storico": "Buffer del monitoraggio di 60 letture per sensore e raccolta statistica separata fino a 1.800 campioni per sensore nella sessione; nessun archivio sul server"
    },
    "adattatore": {
      "modalita": "window.MORLANA.monitoring.setDataMode('api')",
      "ingresso": "window.MORLANA.monitoring.ingestReadings({readings: [...]})",
      "esempio": "monitoring-api-example.json",
      "trasportoDiReteImplementato": false,
      "timestamp": "ISO 8601 con fuso orario; ID già configurati; duplicati o letture precedenti ignorati",
      "datoNonAggiornatoDopoSecondi": 30,
      "tolleranzaTimestampFuturoSecondi": 60
    },
    "acqua": {
      "referenceLevel": "Lettura del sensore associata al livello della vista grafica base; non quota del punto di montaggio",
      "offsetGraficoMetri": [
        0,
        2.2
      ],
      "fattoreInnalzamentoValle": 0.65,
      "fattoreScenarioDemo": [
        1,
        3
      ],
      "offsetMassimoDemoMetri": 2.1,
      "datoNonAggiornato": "Mantiene l'ultimo livello noto, con badge e testo di dato non aggiornato. Senza lettura o riferimento mostra la vista base.",
      "contesto": "Scenario applicato al progetto completato con acqua visibile; sospeso nelle fasi precedenti, sotto l'alveo, nei rilievi e durante il viaggio. Scenario e letture vengono conservati per il ritorno al progetto completato.",
      "effetti": "Innalzamento continuo di acqua, scivolo e cascata; corrente, schiuma e spruzzi più intensi.",
      "portataFisicaCalcolata": false,
      "limiti": "Raccordo illustrativo da calibrare sullo zero dell'idrometro e sulle quote del sito. Nessuna curva livello–portata verificata, previsione di piena o verifica idraulica."
    },
    "accessi": "L'editor attuale è pubblico e modifica la configurazione locale del browser. Persistenza condivisa e amministrazione protetta richiedono un futuro backend con autenticazione e autorizzazione.",
    "esportazioneGLB": "Segnaposti sensori e acqua animata non sono inclusi nel GLB delle opere.",
    "limiti": "La modalità demo è separata dalle letture API. I valori simulati non rappresentano misure reali o condizioni di sicurezza dell'opera."
  },
  "correzioneCordoloValle22ottobre": {
    "data": "2026-10-22",
    "origine": "Indicazione del referente per il modello divulgativo: raccordare il cordolo corto a valle alla quota del cordolo adiacente e abbassare insieme le relative colonne jet.",
    "allineamento": "H_return, fra H1 e H2",
    "riferimento": "Cordolo trasversale G",
    "quotaOriginaleInterpretataMetri": 310.5,
    "quotaSommitàCorrettaMetri": 307.8,
    "quotaTestaJetMetri": 305.8,
    "quotaPuntaJetMetri": 293.8,
    "lunghezzaJetInvariataMetri": 12,
    "numeroColonneIllustrative": 9,
    "geometriaConservata": "Coordinate in pianta, sezione del cordolo, diametro, interasse e lunghezza delle colonne; gli altri allineamenti restano invariati.",
    "provenienza": "project-geometry.json conserva l’estrazione originale a quota 310,50 m. project-presentation.js applica a una copia del modello la revisione USER-2026-10-22-DOWNSTREAM-BEAM descritta in presentation-revisions.json. Le quote sono quote convenzionali del progetto; la correzione visiva non è una nuova estrazione CAD o un rilievo as-built.",
    "grafica": {
      "renderer": "Three.js WebGL con accelerazione grafica del browser, quando disponibile e abilitata.",
      "risoluzione": "Definizione adattiva alla dimensione della vista e al carico osservato, con budget massimo di 8 megapixel per la resa HD.",
      "ombre": "Aggiornamento delle ombre animate limitato a 20 Hz; il movimento della scena segue il ciclo di rendering.",
      "texture": "Filtraggio anisotropico fino a 16×, limitato alle capacità dichiarate dal dispositivo.",
      "compatibilità": "Qualità effettiva e fluidità dipendono da scheda grafica, browser, risoluzione e carico della scena. Nessuna frequenza di fotogrammi garantita per una generica scheda video di base."
    }
  },
  "viaggioGuidato": {
    "durataSecondi": 92,
    "tappe": [
      "Passerella ciclopedonale",
      "Posa di tre massi del ciclopico a monte",
      "Perforazione e iniezione jet grouting",
      "Cordoli",
      "Protezioni",
      "Traversa e cascatella",
      "Pista e corten"
    ],
    "geometrie": "Il viaggio modifica temporaneamente visibilità, lunghezza di comparsa e numero di istanze mostrate. Tre massi bianchi già presenti nel ciclopico passano dal cassone del dumper al deposito sulla ghiaia e vengono poi afferrati e posati uno alla volta dall’escavatore. L’area di lavoro e il passaggio dei mezzi sono temporaneamente liberati. La perforatrice lavora in un piccolo foro nel terreno continuo a livello alveo, con asta animata in discesa e in risalita. Accanto, l’escavatore raccoglie il terreno fangoso e carica il dumper in tre cicli durante i primi 18 secondi della tappa jet; negli ultimi 6 secondi il dumper si allontana sulla pista. Geometrie complete ripristinate all’uscita. Traiettoria e animazioni illustrative, non un piano di volo o un diario di cantiere.",
    "mezziEOperatori": "Escavatore articolato con torretta, braccio, benna e pinza idraulica per la presa dei massi; trivellatrice con carrello e asta animati; dumper che arretra lungo la pista, apre la sponda e scarica tre massi dal cassone prima della loro posa. Nella tappa jet sono presenti contemporaneamente perforatrice, escavatore, dumper e sette operatori con caschetto e abbigliamento ad alta visibilità. L’escavatore carica tre benne di materiale fangoso nel dumper, che poi si allontana. Nelle tappe ciclopico e jet mezzi e operai appoggiano sul terreno asciutto e sulle piste in ghiaia a livello alveo; nelle tappe cordoli e protezioni lavorano sul letto continuo con poca acqua sul fondo. Modelli procedurali senza marchi, di dimensioni indicative e non riferiti a mezzi documentati nel cantiere.",
    "allestimentoAlveo": "Piste in sassolini e terreno asciutto per ciclopico e jet. Nella tappa jet il piano di lavoro è ampio e continuo a livello alveo, raccordato al terreno circostante, con ghiaia, terra umida e solchi dei mezzi. Un argine provvisorio continuo separa gli operatori e i mezzi dal fiume deviato sulla destra dell’inquadratura del viaggio. Il foro dell’asta è una piccola apertura circolare nel terreno. Nelle tappe cordoli e protezioni il terreno è continuo e segue la pendenza delle superfici di progetto; un velo d’acqua trasparente ricopre il fondo, mantenendo leggibili il reticolo e le protezioni. Il fondo illustrativo è posto 22 cm sotto il profilo delle superfici e il velo d’acqua 14 cm sopra il fondo: sono scelte di rappresentazione, non quote o livelli misurati. Disposizione di piste, area di lavoro, argine e deviazione definita per la presentazione su indicazione del referente: non deriva da un rilievo dell’allestimento reale di cantiere e non costituisce una procedura esecutiva verificata.",
    "attoriTemporanei": "Mezzi, operatori, coni, piste e piazzali di ghiaia, terreno di lavoro, argine provvisorio, canale di deviazione, acqua bassa delle lavorazioni e colonna in formazione appartengono alla sola rappresentazione animata. Sono rimossi alla fine della sequenza o all’uscita e sono esclusi dall’esportazione GLB delle opere.",
    "numeri": "Contatore indipendente dalle istanze del modello: dati da project-quantities.json, computo originario febbraio 2024. Totale base 2.567 metri, inclusa integrazione in sommità; non quantità eseguite certificate.",
    "comandi": "Avvio esplicito, pausa/ripresa, riavvio, scelta delle sette tappe, cursore temporale, uscita e accesso all’esplorazione dal punto di arrivo.",
    "accessibilita": "Con movimento ridotto: viste ferme e mezzi in pose rappresentative per tappa, senza volo o crescita animata; pausa automatica quando la pagina viene nascosta o si aprono numeri e fonti.",
    "acqua": "Nelle tappe ciclopico e jet grouting l’acqua resta visibile e animata nel canale laterale oltre l’argine provvisorio, mentre mezzi e operai lavorano nella zona in asciutta. Nelle tappe cordoli e protezioni un velo d’acqua bassa e trasparente scorre direttamente sul letto continuo accanto agli operatori e ai mezzi. La trasparenza della sola acqua bassa è regolata separatamente per mantenere visibili fondo e opere. Il movimento dell’acqua continua anche durante la pausa del volo, salvo la preferenza del dispositivo per il movimento ridotto. Al termine delle lavorazioni ritorna l’acqua della vista dell’opera completa; la preferenza precedente è ripristinata all’uscita. Livelli, portate e deviazione sono illustrativi e non derivano da una simulazione idraulica."
  },
  "completamentoPaesaggio22ottobre": {
    "centralina": {
      "geometria": "hydropower-context.json",
      "fonti": [
        "Ortofoto ottobre 2025",
        "Ortofoto marzo 2026",
        "DJI_0276.JPG",
        "DJI_0267.JPG"
      ],
      "tipo": "Ricostruzione di contesto dalle foto e dalle ortofoto fornite",
      "quoteIndicative": true,
      "interniOTurbineRicostruiti": false
    },
    "riempimentoErboso": {
      "file": "bank-infill.js",
      "sommitàMetri": 315.16,
      "fondoMetri": 305.65,
      "tipo": "Raccordo visivo richiesto dal referente, senza modificare pista e recinzione"
    },
    "proseguimentoFiume": {
      "file": "river-continuation.js",
      "lunghezzaScenograficaMetri": 220,
      "inizio": "Bordo G1–G5",
      "tipo": "Estensione illustrativa con acqua animata condivisa; non batimetria o simulazione idraulica"
    },
    "sorgentiProgettoOriginaliConservate": true
  },
  "raccordoCentralinaFiume": {
    "geometria": "hydropower-context.json → bankConnection",
    "tipo": "Muro in calcestruzzo con coronamento, su indicazione del referente; profilo illustrativo",
    "conservati": [
      "Presa aperta",
      "Fabbricati",
      "Geometria originale della traversa",
      "Cordolo H corretto",
      "Recinzione corten"
    ],
    "idrometro": "Presenza al termine del muro segnalata dal referente; coordinate e misura reale non ancora inserite."
  }
}
