{"_readme":"Модели конфигуратора по коллекциям (ключ - адрес страницы /katalogproduktsii/<ключ>). Для каждой модели: name - название, src - картинка двери (дверь по центру на светлом фоне; подписи по углам не мешают), price - цена комплекта в рублях или null. Геометрию (коробка, стекло, ручка) конфигуратор находит на картинке сам. materials: ral - цвета RAL, veneer - шпон. glass - стекло вручную, если конфигуратор не нашёл его сам: список прямоугольников [x, y, ширина, высота] в долях кадра двери (0..1); края подгоняются к рамке. Можно {\"r\": [...], \"bars\": [колонки, ряды]} - раскладка, \"snap\": false - без подгонки. Пустой список - стекла нет. casing: false - дверь без наличников. {\"r\": [...], \"hold\": true} - участок «не трогать»: там дверь остаётся как на фото, даже внутри стекла (\"oval\": true - овал/круг в рамке r, край ровный). Рисуется в редакторе стёкол. {\"r\": [...], \"wall\": true, \"rot\": градусы} - рамка «не заливать» (с поворотом): внутри неё стекла нет, дверь как на фото; если рамки лежат на стекле с cross, свой крест не рисуется (планки уже обведены на фото). На уровне коллекции: glass - \"keep\" (стекло/витраж всегда как на фото) или \"none\" (стекла нет); detectMetal: false - не искать ручку/петли (для шпона). \"lines\": [колонки, ряды] - тонкая латунная решётка поверх стекла; \"keep\": true - этот проём как на фото (витраж). facet: true - у стекла скошенная кромка (фацет), она тоже стекло. seed: [x, y, ширина, высота] - откуда начинать заливку стекла (для стекла с вырезом); flood: false - стекло с отражением, без заливки. cross: true - косой крест из планок цвета полотна. glazed - есть ли у модели стекло (true/false): по нему модели во вкладке «Модель» делятся на «Без остекления» и «С остеклением». Проставлено по разбору фото; если поля нет - конфигуратор решает сам. smoothPaint: true — сглаживать шум исходного фото при окраске RAL/NCS; древесный рисунок шпона сохраняется. highlightStrength — сила светлых бликов (0..1). hardware — точная маска ручек и петель в долях обрезанного кадра двери: rect [x,y,ширина,высота] или ellipse [центрX,центрY,радиусX,радиусY]; radius — скругление прямоугольника в долях ширины кадра. При полной ручной разметке detectMetal: false исключает ложное сохранение теней и бликов полотна.","collections":{"neoklassika":{"models":[{"name":"С1","src":"images/modeli/neoklassika/price/prajsS1.jpg","price":38010,"glazed":false,"hardware":[{"rect":[0.1234866828087167,0.529,0.05811138014527845,0.024],"radius":0.007263922518159807},{"rect":[0.15738498789346247,0.536,0.13317191283292978,0.005],"radius":0.002421307506053269},{"rect":[0.8958837772397095,0.144,0.014527845036319613,0.05],"radius":0.002421307506053269},{"rect":[0.8958837772397095,0.843,0.014527845036319613,0.05],"radius":0.002421307506053269}]},{"name":"С2","src":"images/modeli/neoklassika/price/prajsS2 .jpg","price":38010,"glass":[{"r":[0.279,0.115,0.447,0.788],"snap":false}],"glazed":true,"hardware":[{"rect":[0.1234866828087167,0.529,0.05811138014527845,0.024],"radius":0.007263922518159807},{"rect":[0.15738498789346247,0.536,0.13317191283292978,0.005],"radius":0.002421307506053269},{"rect":[0.8934624697336562,0.144,0.014527845036319613,0.05],"radius":0.002421307506053269},{"rect":[0.8934624697336562,0.843,0.014527845036319613,0.05],"radius":0.002421307506053269}]},{"name":"С3","src":"images/modeli/neoklassika/price/prajsS3.jpg","price":38010,"glazed":false,"hardware":[{"rect":[0.12318840579710146,0.529,0.057971014492753624,0.024],"radius":0.007246376811594203},{"rect":[0.1570048309178744,0.536,0.13285024154589373,0.005],"radius":0.0024154589371980675},{"rect":[0.8913043478260869,0.144,0.014492753623188406,0.05],"radius":0.0024154589371980675},{"rect":[0.8913043478260869,0.843,0.014492753623188406,0.05],"radius":0.0024154589371980675}]},{"name":"С4","src":"images/modeli/neoklassika/price/prajsS4.jpg","price":38010,"glass":[{"r":[0.28,0.116,0.44,0.503],"snap":false}],"glazed":true,"hardware":[{"rect":[0.12289156626506025,0.529,0.05783132530120482,0.024],"radius":0.007228915662650603},{"rect":[0.1566265060240964,0.536,0.13253012048192772,0.005],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.144,0.014457831325301205,0.05],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.843,0.014457831325301205,0.05],"radius":0.0024096385542168677}]},{"name":"С5","src":"images/modeli/neoklassika/price/prajsS5.jpg","price":38010,"glazed":false,"hardware":[{"rect":[0.12318840579710146,0.529,0.057971014492753624,0.024],"radius":0.007246376811594203},{"rect":[0.1570048309178744,0.536,0.13285024154589373,0.005],"radius":0.0024154589371980675},{"rect":[0.8913043478260869,0.144,0.014492753623188406,0.05],"radius":0.0024154589371980675},{"rect":[0.8913043478260869,0.843,0.014492753623188406,0.05],"radius":0.0024154589371980675}]},{"name":"С7","src":"images/modeli/neoklassika/price/prajsS7.jpg","price":40220,"glazed":false,"hardware":[{"rect":[0.12289156626506025,0.529,0.05783132530120482,0.024],"radius":0.007228915662650603},{"rect":[0.1566265060240964,0.536,0.13253012048192772,0.005],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.144,0.014457831325301205,0.05],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.843,0.014457831325301205,0.05],"radius":0.0024096385542168677}]},{"name":"С9","src":"images/modeli/neoklassika/price/prajsS9.jpg","price":40220,"glazed":false,"hardware":[{"rect":[0.12289156626506025,0.529,0.05783132530120482,0.024],"radius":0.007228915662650603},{"rect":[0.1566265060240964,0.536,0.13253012048192772,0.005],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.144,0.014457831325301205,0.05],"radius":0.0024096385542168677},{"rect":[0.891566265060241,0.843,0.014457831325301205,0.05],"radius":0.0024096385542168677}]}],"room":{"src":"room-neoklassika-optimized-20261015.webp","w":2560,"h":1440,"top":100.99893730074389,"bottom":1239.5324123273115,"open":[1347.3684210526317,255.55791710945803,1714.8325358851675,1155.3666312433581],"focus":[0.7,0.5],"light":false},"defaultModel":"С9","defaultRal":"9010","defaultNcs":"S 1505-Y50R","smoothPaint":true,"highlightStrength":0.18,"detectMetal":false}}}