# Modele 3D — obiectivele 31–100

70 de perechi Blender/GLB noi și **100 de modele reale în galeria RoAtlas**. Cele 688 de fișiere protejate ale modelelor 01–30, inclusiv scenele editabile, statisticile și GLB-urile publice, sunt identice cu începutul acestei etape. Metadatele și referințele catalogului sunt păstrate; sunt adăugate numai asocierile `model.url` pentru noile modele. Verificare finală: 2026-10-01.

Scenele editabile și fișierele din `output/` sunt disponibile în checkout; site-ul publică GLB-urile și acest inventar.

## Organizare și livrabile

Patru conversații locale au lucrat în același checkout: **31–48 (18)**, **49–66 (18)**, **67–83 (17)** și **84–100 (17)**. Au procesat obiectivele secvențial și au deținut propriile directoare de ieșire și GLB-uri publice. Coordonatorul a actualizat cataloagele, a inspectat randările și a verificat galeria. Viewerul și încadrarea automată existente sunt păstrate.

Fiecare `obiective-romania/<folder>/output/` conține `model.blend`, `model.glb`, `generate_model.py`, `ipoteze.md`, `statistics.json` și randări reale `preview/front.png`, `lateral.png`, `rear-inferred.png`, `top.png`. Unele generatoare refolosesc ajutoare din directoarele proprii ale lotului; dependențele și comenzile sunt documentate individual. Scenele Blender au resurse împachetate și sunt salvate comprimat.

Toate cele **1,654 de fotografii locale** ale acestei etape sunt asociate cu observații structurale în documentele individuale. Starea istorică, limitele ansamblului, scara și suprafețele inferate sunt declarate. Ruinele păstrează starea conservată observată; nu sunt inventate clădiri antice complete. Modelul Cotroceni acoperă palatul vechi și muzeul, în limitele referințelor.

## Inventar măsurat

Triunghiurile sunt suma primitivelor mesh exportate, fără multiplicarea instanțelor. Dimensiunile sunt octeți efectivi. Cele 70 de perechi noi totalizează **39,814,344 B GLB** și **62,780,094 B Blender**. Copiile din `static/models/` au aceeași amprentă SHA-256 și sunt servite la `/models/<folder-fără-prefix-numeric>.glb`.

| Nr. | Obiectiv / ipoteze | Triunghiuri | GLB (B) | Blender (B) |
|---|---|---:|---:|---:|
| 31 | Castelul Sturdza | 7,196 | 508,056 | 293,536 |
| 32 | Castelul Károlyi | 8,155 | 578,044 | 315,351 |
| 33 | Castelul Iulia Hasdeu | 8,038 | 627,192 | 344,500 |
| 34 | Cetatea Enisala | 1,211 | 61,864 | 148,659 |
| 35 | Cetatea Poenari | 2,648 | 215,484 | 216,776 |
| 36 | Mănăstirea Moldovița | 5,034 | 403,248 | 335,976 |
| 37 | Mănăstirea Humor | 2,451 | 227,580 | 250,727 |
| 38 | Mănăstirea Cozia | 18,847 | 1,319,116 | 674,424 |
| 39 | Mănăstirea Dragomirna | 9,440 | 585,296 | 419,289 |
| 40 | Biserica de lemn Sfinții Arhangheli Mihail și Gavriil din Șurdești | 2,162 | 178,008 | 176,451 |
| 41 | Biserica fortificată din Prejmer | 10,230 | 680,520 | 470,283 |
| 42 | Biserica fortificată din Hărman | 8,005 | 539,836 | 374,049 |
| 43 | Biserica fortificată din Saschiz | 7,458 | 496,464 | 346,585 |
| 44 | Catedrala Sfântul Iosif din București | 15,973 | 720,596 | 467,416 |
| 45 | Catedrala Evanghelică Sfânta Maria din Sibiu | 2,008 | 223,452 | 245,675 |
| 46 | Palatul Primăriei din Oradea | 31,510 | 2,301,228 | 1,043,229 |
| 47 | Palatul Vulturul Negru | 21,876 | 1,635,004 | 762,421 |
| 48 | Palatul Culturii din Târgu Mureș | 17,550 | 1,296,580 | 754,420 |
| 49 | Palatul Roznovanu | 9,099 | 129,596 | 1,473,372 |
| 50 | Mausoleul de la Mărășești | 13,441 | 148,008 | 871,439 |
| 51 | Castelul Săvârșin | 8,256 | 113,656 | 1,587,985 |
| 52 | Castelul Bethlen din Criș | 9,184 | 127,044 | 1,210,837 |
| 53 | Castelul Lázár | 9,088 | 136,812 | 1,511,828 |
| 54 | Castelul Kálnoky | 4,764 | 107,024 | 1,398,127 |
| 55 | Castelul Sükösd-Bethlen | 15,255 | 155,928 | 1,628,989 |
| 56 | Castelul Haller | 4,669 | 101,928 | 1,376,268 |
| 57 | Castelul Teleki din Gornești | 17,072 | 170,312 | 1,562,198 |
| 58 | Castelul Kemény | 18,090 | 172,540 | 1,722,372 |
| 59 | Palatul Culturii din Arad | 16,402 | 152,988 | 1,358,526 |
| 60 | Cetatea Oradea | 31,018 | 300,080 | 2,564,314 |
| 61 | Cetatea Târgu Mureș | 19,407 | 249,296 | 2,227,454 |
| 62 | Cetatea Trascăului / Colțești | 7,366 | 77,704 | 660,698 |
| 63 | Biserica-cetate Sfântul Mihail din Cisnădioara | 7,554 | 141,252 | 1,383,401 |
| 64 | Cetatea Medievală a Severinului | 1,582 | 61,392 | 805,930 |
| 65 | Cetatea Histria | 8,052 | 112,500 | 1,156,659 |
| 66 | Monumentul Tropaeum Traiani | 27,348 | 305,104 | 1,255,059 |
| 67 | Cetatea Capidava | 4,712 | 92,184 | 202,942 |
| 68 | Sarmizegetusa Regia | 9,104 | 92,260 | 189,565 |
| 69 | Ulpia Traiana Sarmizegetusa | 8,866 | 90,008 | 227,389 |
| 70 | Biserica Sfântul Nicolae din Densuș | 8,006 | 167,372 | 252,947 |
| 71 | Mănăstirea Neamț | 31,498 | 317,980 | 556,100 |
| 72 | Mănăstirea Secu | 22,200 | 213,540 | 400,535 |
| 73 | Mănăstirea Sihăstria | 19,378 | 234,596 | 396,307 |
| 74 | Mănăstirea Agapia | 22,214 | 189,144 | 417,457 |
| 75 | Mănăstirea Văratec | 14,074 | 143,844 | 326,873 |
| 76 | Mănăstirea Sinaia | 31,584 | 333,684 | 532,599 |
| 77 | Mănăstirea Cernica | 31,244 | 325,832 | 512,453 |
| 78 | Mănăstirea Căldărușani | 34,254 | 284,036 | 550,351 |
| 79 | Mănăstirea Snagov | 28,844 | 305,464 | 512,067 |
| 80 | Mănăstirea Tismana | 34,188 | 334,744 | 523,151 |
| 81 | Mănăstirea Polovragi | 16,416 | 234,964 | 353,939 |
| 82 | Mănăstirea Nicula | 31,202 | 386,972 | 560,725 |
| 83 | Mănăstirea Rohia | 28,302 | 419,276 | 571,026 |
| 84 | Biserica de lemn Sfântul Nicolae din Budești Josani | 2,392 | 1,478,376 | 1,555,375 |
| 85 | Biserica de lemn Sfânta Parascheva din Desești | 2,366 | 1,478,924 | 1,552,429 |
| 86 | Biserica de lemn Nașterea Maicii Domnului din Ieud Deal | 2,828 | 1,489,020 | 1,559,711 |
| 87 | Biserica de lemn Sfânta Parascheva din Poienile Izei | 1,690 | 1,475,448 | 1,549,836 |
| 88 | Biserica de lemn Intrarea Maicii Domnului în Biserică din Bârsana | 4,374 | 1,493,092 | 1,574,707 |
| 89 | Biserica de lemn Sfinții Arhangheli Mihail și Gavriil din Plopiș | 2,900 | 1,495,816 | 1,569,996 |
| 90 | Biserica de lemn Sfinții Arhangheli Mihail și Gavriil din Rogoz | 4,502 | 1,500,324 | 1,574,810 |
| 91 | Biserica fortificată din Dârjiu | 17,086 | 700,580 | 843,015 |
| 92 | Biserica fortificată Sfânta Walburga din Cisnădie | 12,020 | 1,110,472 | 1,217,090 |
| 93 | Biserica fortificată din Valea Viilor | 5,460 | 1,062,412 | 1,129,569 |
| 94 | Cetatea Câlnic | 4,676 | 1,061,500 | 1,126,352 |
| 95 | Biserica evanghelică din Sebeș | 7,784 | 659,604 | 675,008 |
| 96 | Catedrala Mitropolitană Sfânta Treime din Sibiu | 28,784 | 1,115,652 | 1,799,598 |
| 97 | Catedrala Mitropolitană din Iași | 32,848 | 789,748 | 925,633 |
| 98 | Domul romano-catolic Sfântul Gheorghe din Timișoara | 5,858 | 1,074,872 | 1,137,370 |
| 99 | Palatul CEC | 19,330 | 1,138,688 | 1,267,545 |
| 100 | Palatul Cotroceni — palatul vechi și Muzeul Național Cotroceni | 14,064 | 1,163,184 | 1,240,401 |

## Verificări efectuate

- Blender nativ **5.2.0 LTS** a executat fiecare generator, a redeschis fiecare scenă salvată și a produs cele patru randări de control. Comenzile, verificările de contact/goluri pe suprafețe evaluate și probele după decodarea GLB sunt în statisticile individuale. Verificările sunt geometrice și vizuale, fără certificare structurală.
- Exporturile folosesc **Draco nivel 10**, cuantizare inițială position **16**, normal **10**, texcoord **14** biți, resurse încorporate și materiale PBR compatibile glTF. Excepție documentată: Prejmer folosește position **18** după ce un export inițial decodat a raportat 19 triunghiuri sub pragul de arie; revizia finală raportează zero. Geometria a fost rafinată în aceeași revizie. Rezoluțiile efective ale texturilor sunt în fiecare `statistics.json`. Nu sunt necesare Meshopt sau KTX2. Limitările probelor după reunirea componentelor sunt documentate individual.
- Decoderul Draco inclus în Three.js **0.180.0** a verificat atributele finite, indicii, normalele unitare, limitele pozițiilor și triunghiurile reale pentru toate cele 70 de modele. Atributele și indicii decodați însumează **67,053,428 B**; valoarea nu include texturile, overhead-ul motorului sau costul complet al GPU. Triunghiurile sub pragul de arie sunt raportate în `raw_draco_checks.degenerate_triangles`.
- Randările frontale, laterale, din spate inferat și de sus au fost inspectate în conversațiile de modelare. Coordonatorul a comparat cele patru vederi cu referințele și apoi imaginile Three.js cu randările Blender. Registrul inspecției native (`output/coordinator-31-100/native-review.json` în checkout) păstrează amprentele modelelor și observațiile. Planșele sunt în `output/coordinator-31-100/native-inspection/`.
- **200/200 verificări în galeria reală din build-ul de producție**, în două loturi cu același cod al aplicației: toate cele 100 de modele la **1440×1000** și **390×844**. Încărcarea, camera față/spate/de sus, resetarea, orbitarea, deplasarea, zoom-ul, fotografiile, redeschiderea 3D și Escape au trecut. Canvas-ul este unic și este eliminat la închidere. Selecția Bran a trecut. Zero excepții de pagină; WebGL2 și buffer de adâncime validate.
- Fiecare GLB încărcat prin HTTP are aceeași amprentă ca livrabilul și copia publică. Rezultatele browserului (`output/playwright/production/results.json` în checkout) și capturile desktop/mobil sunt în `output/playwright/production/`. Statisticile 31–100 au câmp separat `coordinator_gallery_validation`; statisticile 01–30 sunt păstrate.
- `pnpm run check`: **0 erori, 0 avertismente**. `pnpm run build`: **reușit**. Avertismentul existent Vite despre chunk-ul Three.js rămâne documentat. Nu a fost adăugat un framework sau o dependență nouă și nu a fost făcută o publicare online.

## Reproducere

Consultați antetul fiecărui generator și propriul `ipoteze.md` pentru comenzile de generare și redeschidere/verificare. Rulați comenzile din rădăcina proiectului; căile runtime-ului Node sunt relative la aceasta. Blender trebuie să fie disponibil în `PATH` prin comanda `blender`; utilizați `--background --factory-startup --disable-autoexec --threads 2 --python-exit-code 1`. În acest mediu, Blender și Chromium necesită contextul nativ autorizat, deoarece sandbox-ul blochează inițializarea GPU Blender.

```sh
python3 obiective-romania/check_models.py
pnpm run check
pnpm run build
pnpm run preview --port 4173 --strictPort
NODE_PATH=../../.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules ../../.cache/codex-runtimes/codex-primary-runtime/dependencies/node/bin/node obiective-romania/check_gallery.cjs http://127.0.0.1:4173/
```

După o regenerare, publicați GLB-ul validat în `static/models/` și reluați verificările pentru noua amprentă. `check_models.py --publish --current` asociază numai livrabilele pregătite; `check_gallery.cjs --ids=id,id` verifică o selecție fără înlocuirea raportului complet.

## Limite

Reconstrucțiile sunt interpretări exterioare după fotografii, cu scară convențională unde lipsesc măsurătorile. Nu sunt relevee sau fotogrammetrie. Suprafețele ascunse, detaliile fine, relieful sculptural, frescele, terenul și unele racorduri sunt simplificate sau inferate; fiecare document individual precizează limitele. Gruparea semantică a exportului poate limita izolarea contactelor fine, iar verificarea geometrică nu certifică un mesh manifold sau rezistența structurală.

Iluminarea și tonemapping-ul Blender/Three.js diferă. Viewport-ul mobil este emulat în Chromium, fără test pe telefon fizic. Dimensiunea Draco pe disc nu garantează un buget universal de memorie, viteză sau performanță GPU. Rezultatele se aplică amprentelor verificate, nu exporturilor regenerate ulterior.

Inventarul etapei precedente este în [MODELE-3D.md](MODELE-3D.md).
