Открыть редактор квартиры · Галерея интерьеров · Репозиторий
Интерактивный 3D/2D-редактор квартиры по предоставленному файлу .plan версии 3. Работает на компьютере и телефоне без регистрации. Стены, проёмы, мебель и детали можно выбирать, перемещать, поворачивать, менять их размеры и материалы, сохранять варианты и переносить проект через JSON.
По умолчанию открыт вариант «Квартира — кухня и две комнаты»: правый план из файла, с ванной. Помещение 21,43 м² — кухня, 13,55 м² — спальня. В комнате 14,91 м² по умолчанию стоят кровать и рабочее место из принятого варианта ROOM-014. Три отдельные схемы санузла сохранены. Предметов вне контуров в новом файле нет. Все расстановки доступны во вкладке Варианты → Сохранённые расстановки.
| Вариант | Содержимое |
|---|---|
| Квартира | Правый план квартиры: 37 участков стен, 4 оконных/французских проёма, 5 дверных проёмов, 56 исходных предметов (59 с рабочим местом) |
| Санузел — вариант 1 | 10 участков стен, 1 дверь, 7 предметов |
| Санузел — вариант 2 | 11 участков стен, 1 дверь, 6 предметов |
| Санузел — вариант 3 | 12 участков стен, 1 дверь, 4 предмета |
Перенесены числовые координаты стен, включая скосы стыков, толщины, высоты, контуры комнат, положения и размеры проёмов, подоконников, габариты и повороты предметов. Единицы файла — сантиметры; в редакторе — метры. Высота стен 2,70 м. Обычные окна полного плана имеют ширину 1,90 м, высоту 1,50 м, подоконник 0,85 м. Дополнительное окно на верхнем наружном фасаде из прежнего предположения по фотографии удалено: в новом файле его нет.
Мебель показана условными объёмными моделями с габаритами из файла. Для предметов без записанной вертикальной высоты используются явно описанные значения. Материалы, форма отдельных деталей и освещение иллюстративные. Двери показаны полотнами, открытыми на 45°, и дугами открывания на плане. Направления и смещение относительно стены перенесены из файла и сверены со схемой. В 3D полотна видны при выключенном срезе стен. Полное соответствие исходному плану означает соответствие его геометрии, а не подтверждение фактических обмеров квартиры. Точность и допущения.
ROOM-018 подключает принятую расстановку комнаты к основному 2D/3D-плану и его сохранённому исходному варианту. При первом открытии обновления прежние кресла и стол заменяются рабочим местом, только если мебель этой комнаты не изменена и в ней нет добавленных предметов. Изменённая мебель, пользовательские варианты, стены, окна и остальные комнаты сохраняются. Повторное открытие, последующие импорты JSON и явное открытие исходного .plan не запускают замену снова. Отметка обновления хранится только в этом браузере и удаляется вместе с пользовательскими данными.
PLAN-011 исправляет кухонный диван: спинка расположена у перегородки, сиденья обращены в кухню. Координаты, габариты и угол дивана из файла сохранены. Исправляются только нетронутые смещения спинки и трёх сидений в текущей сцене и сохранённых вариантах. Пользовательские позиции, размеры, материалы и остальные предметы сохраняются.
PLAN-010 сверяет проект с экспортом от 8 сентября, 15:35: обновляет точные стыки стен и проёмы, расширенную тумбу, подписи помещений и отображение дверей/кроватей. Для PLAN-008/009 изменения переносятся по полям: вручную изменённые позиции, размеры и материалы сохраняются. Если новая геометрия несовместима с отредактированной стеной, эта стена целиком остаётся прежней. Исходная расстановка «Предметы вне контуров» удаляется только при неизменённой геометрии; изменённый вариант сохраняется. Последующие перезагрузки сохраняют правки; удалённые исходные варианты не создаются повторно. Для просмотра точной исходной схемы используйте кнопку открытия исходного плана в разделе Объекты.
Для проектов, которые ещё не переходили на .plan, сохраняется полный резервный вариант «До обновления по файлу .plan» и добавляются четыре актуальные исходных расстановок.
Ограничение — 30 вариантов. Если для обновления не хватает места, текущий проект остаётся доступен, автосохранение приостанавливается и появляется сообщение. Скачайте JSON, удалите ненужные варианты и повторите открытие исходного плана кнопкой в разделе Объекты.
Прямые ссылки: Квартира, Санузел 1. Старая ссылка ?layout=plan-1 перенаправляет к правому плану. Ссылка открывает соответствующий сохранённый вариант один раз; query-параметр затем убирается. Перед переключением сохраняйте нужные изменения отдельным вариантом.
- Переключайтесь между 3D и План. Мышью вращайте 3D-вид, колесом меняйте масштаб; во вкладке Варианты доступны общий вид, вид сверху и ракурсы из комнат.
- Выберите элемент на плане или через Объекты → Поиск объектов. Раскройте группу, чтобы выбрать отдельную деталь. Режим Детали позволяет выбирать вложенные части прямо в сцене.
- Во вкладке Свойства задайте положение X/Y/Z, размеры, поворот, цвет и материал. Размеры учитывают масштаб родителей; координаты детали отсчитываются от родителя.
- Объекты → Добавить стену на план создаёт стену высотой 2,70 м и включает её перемещение в 2D. Задайте длину, толщину, положение и угол. Удалять или скрывать можно любую незакреплённую стену.
- В свойствах стены добавьте Дверной проём или Окно. Проём появится внутри стены в дереве; его положение, ширина, высота и уровень над полом редактируются независимо. Пересекающиеся или выходящие за стену проёмы отклоняются.
- Варианты → Сохранить как новый вариант сохраняет всю сцену и ракурс. Обновить «…» заменяет выбранный сохранённый вариант текущей сценой. Текущая сцена сохраняется автоматически, а сохранённый вариант — отдельной кнопкой.
Кнопки отмены/повтора работают для редактирования, импорта и переключения вариантов. У пола доступны редактируемый внешний контур и отверстия. Стены, полы и предметы независимы: перенос стены не перестраивает комнаты автоматически.
Срез стен уменьшает высоту стен для обзора; потолочные светильники скрываются вместе с потолочным уровнем. В полном виде они остаются на записанной высоте. Для каждой стены режим среза можно отключить в её свойствах. Палитры, вечернее освещение, мебель, подписи и сетка переключаются во вкладке Варианты.
Комната 14,91 м² — кровать и рабочее место (ROOM-014). В трёх отделках предлагается стол 160 × 70 см, два 27-дюймовых монитора, компьютер под столом и рабочее кресло лицом к экранам. Мониторы стоят у длинной глухой стены, боком к остеклению лоджии: дневной свет приходит слева от сидящего человека. Кровать 90 × 200 см и тумба сохранены, прежнее кресло у стены и лишний стул убраны. За рабочим креслом оставлено более метра до противоположной стены. Внутренний ракурс комнаты, общий вид и схема показывают одну расстановку. Направление прямого солнца и необходимость штор уточняются по ориентации здания.
Эта расстановка теперь включена в основной новый проект. Геометрия оригинального .plan отдельно доступна кнопкой Объекты → Открыть исходный .plan. Галерея также сохраняет самостоятельный файл предложения: Под схемой квартиры нажмите Скачать расстановку JSON, затем в редакторе Файл → Импортировать проект → Открыть проект. Сначала скачайте свой текущий проект, если хотите сохранить его отдельно: импорт открывает содержимое выбранного файла. В файле предложения есть новый вариант «Комната · кровать и рабочее место» и все четыре исходные расстановки. Для простого просмотра и сравнения достаточно галереи.
Отдельная галерея содержит 30 фотореалистичных изображений готового интерьера в 12 вариантах: план квартиры и три схемы санузла × светлая, тёплая и контрастная отделка. Для каждой отделки квартиры — два ракурса кухни, спальня и комната 1; для каждого санузла — два внутренних ракурса. Изображения сгенерированы встроенным imagegen по соответствующим 3D-ракурсам исходного плана. В них показаны завершённая отделка, мебель, техника, текстиль и освещение. Дополнительно доступны 12 общих видов модели и четыре схемы.
Под каждым внутренним ракурсом можно переключить Готовый интерьер / 3D-основа и сравнить визуализацию с исходной геометрией. Генерация иллюстрирует материалы и внешний вид; точные размеры, проёмы и расстановка проверяются в модели и на схеме. Конкретные модели мебели и отделочных материалов ещё не выбраны. Галерея показывает базовый проект, личные правки посетителя в неё автоматически не попадают.
Выберите планировку и стиль в фильтрах. Подробнее открывает изображения, материалы и схему. Переключайте ракурсы миниатюрами или кнопками со стрелками; при фокусе внутри просмотра также работают клавиши ←/→, Home/End. Подпись показывает выбранный ракурс и его номер. Открыть изображение целиком открывает выбранную визуализацию или 3D-основу в исходном разрешении. Сравнить у двух карточек и нижняя кнопка Сравнить два варианта показывают их рядом; на телефоне — последовательно. Ракурсы и переключатели источника в сравнении работают независимо. Escape закрывает диалог. Если кадр не загрузился, нажмите Повторить, выберите другой ракурс или его 3D-основу. Просмотр галереи не меняет сохранённую сцену.
Галерея работает без WebGL и API-ключей. Изображения загружаются по мере прокрутки; при ошибке доступна кнопка Повторить. Происхождение изображений и воспроизведение описаны в GALLERY_ASSETS.md.
Объекты → Добавить открывает каталог из 14 типов: диван, кровать, столовая группа, шкаф, ванна, кухня, светильник, растение, простой блок, стена, рабочий стол, офисное кресло, монитор и системный блок. Поиск сокращает список. Выберите типовой размер или введите ширину, высоту и глубину в сантиметрах, затем помещение и Добавить предмет. Новая мебель появляется в центре помещения; перенесите её на нужное место инструментом перемещения. Монитор добавляется на пол: для установки на стол задайте положение Y в свойствах. Модели условные, габариты редактируемые; каталог не привязан к магазинам.
Чтобы заменить мебель, сначала выберите предмет целиком, затем в каталоге выберите другой тип и Заменить выбранный предмет. Сохранятся центр, поворот и нижний уровень прежнего предмета. Замена недоступна для закреплённых объектов и вложенных деталей. Её можно отменить.
Проверка открывает план с размерами и подсветкой. Выберите мебель: появятся размеры её проекции и ближайшие расстояния до стены и другого предмета с учётом высоты. Эти расстояния пересчитываются после перемещения, поворота и изменения габаритов.
Измерить между точками или значок линейки на панели включает ручное измерение. Нажмите две точки плана; между ними сохранится размерная линия. Между точками можно сдвигать и масштабировать план. Escape отменяет начатую линию; Завершить измерение возвращает выбор предметов. Размер удаляется кнопкой рядом с ним, отмена/повтор доступны. До 100 линий хранятся в текущей сцене, сохранённых вариантах и экспортируемом JSON. Ручные точки закреплены в координатах плана и не перемещаются вместе с мебелью.
Красная подсветка отмечает пересечения мебели со стенами/другими предметами и препятствия в дверных проёмах или зонах открывания дверей. Для выбранной мебели задайте Свободно спереди / сзади, см: пунктиром появится зона использования, стрелка обозначит переднюю сторону. Зона поворачивается вместе с предметом; её глубина остаётся заданной в сантиметрах после изменения размеров мебели. Для нового офисного кресла из каталога задано 60 см сзади, для шкафа — 60 см спереди; эти значения можно изменить или обнулить.
Показывать узкие зазоры дополнительно отмечает расстояния меньше указанного порога (по умолчанию 80 см). Зазоры до 5 см считаются примыканием и не включаются в этот список. Нажмите замечание, чтобы выбрать связанный предмет. Пересечения учитывают видимость частей, высоту и реальные проёмы в стенах; касания до 5 мм не считаются пересечением. Сложные формы проверяются по проекциям. Порог зазора выбирает пользователь: это ориентир для расстановки, а не проверка строительных норм или доступности всего маршрута. Замечания не перемещают мебель автоматически.
Если размеры не видны, включите Расстояния до выбранного объекта и выберите мебель. Если предмет подсвечен, проверьте замечание и его положение/высоту во вкладке Свойства. Чтобы убрать подсветку, выключите Подсветить препятствия. Личные изменения сохраняются в браузере; для резервной копии используйте JSON. Существующие проекты открываются без сброса и без изменения исходного плана.
Все инструменты работают в текущей расстановке. Исходные стены, окна и мебель не меняются при включении новых режимов. Настройки сохраняются в браузере и в JSON; сохранённый вариант содержит собственные материалы, свет и ракурсы.
- Объекты → Расстановка, привязки и группы. Включите привязку к сетке или стенам/мебели, задайте шаг и отступ в сантиметрах. В режиме План → Перемещать объект появятся направляющие и расстояния до ближайшей внешней стены/мебели. Alt временно отключает привязки. Для точного зазора выберите предмет, стену и нажмите Установить отступ от стены. Выравнивание краёв и центров использует первый выбранный предмет как ориентир.
- Выделять рамкой выбирает полностью попавшую в рамку мебель. Shift + нажатие добавляет или убирает предмет; на телефоне доступны флажки у названий в списке. Кнопка Перемещать выбранные на плане позволяет перетаскивать всю подборку. Общие поворот и копирование сохраняют взаимное расположение. Задайте название и нажмите Объединить в группу: группа станет самостоятельным предметом, доступным также для перемещения в 3D. Разгруппировать сохраняет мировое положение деталей, включая повёрнутые и масштабированные группы. Группы сохраняются в JSON; временное выделение — нет. Отмена/повтор доступны штатными кнопками и Cmd/Ctrl+Z.
- Варианты → Прогулка и ракурсы → Начать прогулку. Высота глаз и скорость редактируются. WASD перемещают, стрелки вверх/вниз идут вперёд/назад, стрелки влево/вправо поворачивают. Тяните изображение мышью или пальцем для осмотра; экранные стрелки подходят для телефона. Начать прогулку здесь открывает план: нажмите на свободное место на полу. Стены, мебель, видимые дверные полотна и границы пола ограничивают движение. Escape / Завершить прогулку возвращает предыдущий обзор. Сохранить текущий ракурс создаёт именованную точку обзора (до 30 на расстановку); её можно открыть и удалить независимо от остальных.
- Варианты → Дневной свет. Включите солнце, выберите дату, местное время или сезон. Исходные параметры по вашим данным: Минск, 53.90019° N / 27.56653° E, UTC+3; север вправо (90°), остекление лоджии на юг. При уточнении здания измените угол: 0° означает север вверх на плане. Для другого города необходимо вручную изменить координаты и часовой пояс; поле города служит подписью. В условном режиме задаются азимут и высота солнца, без расчёта по дате. Для теней через окна используются полные стены и потолок; в режиме среза свет попадает и через удалённые части. Расчёт прямого солнца приближённый, по формулам NOAA, без атмосферной рефракции, облачности, окружающих зданий и точного моделирования отражений. Это визуальная проверка, а не расчёт нормативной инсоляции. Координаты Минска сверены с геокодированием Open-Meteo.
- Выберите предмет → Свойства → Отделка поверхности. Доступны краска, дубовая доска, плитка, ткань и камень. Задаются цвет, направление, физические размеры элемента, ширина/цвет шва и шероховатость. При движении в палитре сразу меняется образец цвета; модель обновляется после подтверждения выбора или перехода к другому полю. Один выбор цвета отделки или шва — один шаг отмены; Escape в поле отменяет незавершённый выбор. Размеры элемента — сантиметры, шва — миллиметры. Текстуры и рельеф видны в 3D, масштаб рисунка сохраняется при изменении габаритов предмета. У стены можно независимо настроить сторону A, сторону B, торцы и верх/низ; обозначения A/B относятся к собственным осям стены. Отделка группы применяется ко всем её деталям. Убрать отделку возвращает базовый материал. Штатная смена базового материала также снимает подробную отделку; изменение общего цвета перекрашивает её. Готовые изображения в галерее остаются сохранёнными визуализациями и не перегенерируются после пользовательских правок.
Если привязка мешает — удерживайте Alt либо снимите флажок Включить привязки. Если нельзя начать прогулку в выбранном месте — укажите свободный участок комнаты; узкие проходы и закрывающие путь дверные полотна могут ограничить движение. Если не видно текстуры — переключитесь в 3D; если не видно солнечного пятна — проверьте время, направление севера, полный вид стен и положение камеры внутри комнаты. Настройки просмотра сохраняются автоматически; после изменения геометрии, отделки или ракурсов обновите нужный сохранённый вариант отдельной кнопкой.
Все семь инструментов находятся во вкладке Ремонт. Выберите нужный раздел: Механизмы, Электрика, Смета, Солнце, Сравнение, Чертежи или Изображения.
-
Открывание дверей и мебели: выберите предмет и схему, нажмите «Настроить механизм». Открывайте всё или задавайте процент отдельной детали. Полный угол, ход, ось и крепление редактируются. «Зафиксировать положение без механизма» оставляет текущую геометрию; «Отменить» возвращает прежнюю настройку. Для произвольной детали откройте её Свойства → Механизм предмета → Задать движение вручную. Настройка шкафов добавляет стенки корпуса и подвижные фасады; техника и выкатной диван остаются схемами до выбора конкретного изделия. Отчёт проверяет пересечения с другими предметами и стенами в показанном положении. Полные дверные секторы доступны в прежней Проверке.
-
Электрика и освещение: выберите розетку, выключатель, данные, вывод техники или светильник; задайте высоту и группу. Нажмите «Указать точку на плане» и выберите место мышью или касанием; Escape/«Отмена» отменяют размещение. Можно добавить точку в выбранное помещение и затем уточнить мировые координаты, высоту и поворот. Начальные высоты — редактируемые значения, не предписание для монтажа. Существующий светильник можно сделать управляемым, сохранив его геометрию. Для нового света доступны поток в люменах, приблизительная цветовая температура, яркость, направленный/всесторонний тип, ширина конуса и направление.
-
Группы светильников включаются отдельно. Выключателю назначаются группы; кнопки имитируют его действие. «Посмотреть свет вечером» показывает собственные светильники в полноразмерной модели. Четыре начальных сценария используют названия групп «Рабочее место», «Кухня», «Коридор»; любые текущие яркости сохраняются новым сценарием. Удаление светильника не ломает старый сценарий; отсутствующие точки пропускаются, новые выключаются при его применении. Максимум 32 управляемых светильника и 20 сценариев на расстановку. Световой поток передаётся в
powerThree.js; это визуальная модель без расчёта нормативной освещённости и физического переотражённого света. -
Материалы и смета: выберите всю квартиру или помещение. Цены, валюта, запас, единица покупки, покрытие на единицу и кратность задаются вручную. Например, для упаковок покрытия укажите площадь упаковки и кратность 1; для литров краски — м² на литр. Кратность 0 разрешает дробное количество. Нулевая цена помечается как незаданная. CSV содержит текущую ведомость; при сравнении используются собственные сохранённые цены каждого варианта, без конвертации валют. Площадь стен вычитает проёмы, плинтусы учитывают примыкание к полу; внешние/непривязанные поверхности и откосы/торцы не включены. Изменение стены не пересчитывает независимый контур пола автоматически.
-
Ремонт → Солнце: добавьте фактические детали столешницы и экранов, укажите верхнюю/лицевую/обратную сторону. Стол и два монитора в варианте комнаты с рабочим местом предлагаются автоматически; открытие панели само по себе ничего не сохраняет. Задайте рабочие часы, шаг 15/30/60 минут, дату или сезон. Координаты, север и часовой пояс общие с дневным светом; отчёт всегда использует географический расчёт. Потолок для анализа по умолчанию 2,70 м, редактируется отдельно.
-
Нажмите Рассчитать солнце. Таблица сравнивает текущую расстановку, общий поворот выбранной мебели, рулонную штору и горизонтальные жалюзи. Время — приблизительная сумма интервалов, в середине которых прямое солнце попало хотя бы в одну из 25 точек поверхности; средняя доля взвешена по длительности интервалов. Выберите поверхность, сценарий и интервал: схема и сетка покажут освещённые точки. Поворот вычисляется в копии сцены, не переносит мебель в проект и сообщает найденные пересечения/выход за комнаты.
-
В Шторы и жалюзи выберите оконные проёмы. Непрозрачная рулонная штора закрывается сверху на заданный процент; у ламелей задаются ширина, шаг и наклон относительно осей проёма. Это идеальная геометрическая модель, без полупрозрачности ткани. Полные стены, окна, рамы, непрозрачная мебель и потолки учитываются независимо от визуального среза. Облака, соседние здания, стеклопропускание, отражения и рассеянный свет не моделируются; значения не являются расчётом люксов или бликов. Боковое положение мониторов не исключает прямого солнца зимой.
-
Отменить расчёт останавливает работу. Изменение сцены/настроек делает прежний отчёт неактуальным; нужно рассчитать заново. Настройки сохраняются в текущей расстановке и JSON, сами результаты пересчитываются после загрузки. Если расчёт не начинается, проверьте выбранные детали, видимый пол/оконные проёмы и предметы для поворота. Нулевое время означает отсутствие попаданий в выбранных точках и шагах, а не гарантированное отсутствие солнечного света или бликов.
-
Ремонт → Сравнение → Открыть сравнение: выберите варианты A и B независимо. «Текущая сцена» включает изменения, которые ещё не внесены в сохранённый вариант; её состояние фиксируется на момент открытия окна. Можно сравнить два сохранённых варианта. Перемещение и масштаб планов общие; в 3D вращение любого вида повторяется во втором. На телефоне доступны перетаскивание и масштабирование двумя пальцами; кнопки над планами доступны с клавиатуры. «Показать оба целиком» подбирает общий обзор.
-
Цвета показывают добавленное в B, отсутствующее в B и изменённое. Отключите Подсветить изменения, чтобы смотреть исходные материалы. Сравниваются стены, полы и предметы целиком с их деталями; организационная группировка, названия, блокировки и камера не считаются изменением геометрии. Выбор строки выделяет соответствующий предмет в обоих видах. Отдельный отчёт показывает площади, плинтусы, пользовательскую стоимость, позиции без цены, пересечения, зоны дверей/использования и найденные узкие зазоры с редактируемым порогом. Валюты не конвертируются. Это не проверка непрерывных маршрутов или строительных норм.
-
Окно сравнения работает с отдельными снимками и не записывает ракурсы, порог зазоров или выделение в проект, историю и хранилище браузера. Закройте его кнопкой Закрыть или Escape; чтобы включить более поздние изменения текущей сцены, откройте заново. При ошибке 3D перейдите на план или переоткройте окно. Если отличий нет, проверьте, что выбраны разные сохранённые состояния.
-
Ремонт → Чертежи → Открыть чертежи: выберите помещения для развёрток; по умолчанию отмечены кухня и санузел. Планы помещений, мебели, электрических точек и ведомость электрики включены всегда. На каждой развёртке схема показывает расположение стены и направление взгляда. Размеры в сантиметрах берутся из текущей геометрии, включая проёмы, подоконники и высоты точек от пола. Мебель в пределах 110 см от стены показана проекцией; ведомость содержит её габариты и отступы. Короткие участки ниш также получают листы, поэтому комплект может быть большим.
-
Выберите лист в списке, увеличьте его для чтения или скачайте отдельный SVG. Скачать комплект PDF создаёт A4 с указанным масштабом; при печати выберите 100%, без подгонки. PDF содержит изображения страниц 220 dpi с кириллицей; SVG сохраняет векторный текст и линии. Экспорт можно отменить. Трассы кабелей, рабочая привязка раскладки плитки и строительные допуски не рассчитываются. Для обновления после правок закройте и снова откройте чертежи.
-
Ремонт → Изображения → Открыть изображения: выберите помещение, один из четырёх ракурсов или поверните камеру в предпросмотре. Камеры рассчитываются заново по свободному месту текущей модели; если места недостаточно, ракурсов будет меньше. Создать изображение использует текущую камеру, Создать ракурсы помещения создаёт всю подборку. Доступны PNG шириной 1280, 1920 и 2560 пикселей. Снимки используют текущие стены, окна, мебель и отделку, сглаживание нескольких кадров, мягкие тени, фактуру материалов и приближённые отражения помещения.
-
Скачайте нужные PNG перед закрытием окна: подборка содержит 12 последних изображений и не записывается в хранилище проекта. Расчёт можно отменить; уже готовые изображения останутся доступны. На мобильном устройстве начните с 1280 пикселей. При ошибке текстуры или 3D закройте окно, проверьте загрузку сайта и откройте снова. Эти изображения показывают фактическую геометрию модели со схематичными деталями мебели; прежние фотореалистичные иллюстрации остаются в отдельной галерее. После изменения сцены откройте инструмент заново.
Настройки сохраняются с расстановкой, историей и JSON. Для передачи другому устройству используйте Файл → Экспорт JSON; новый вариант сохраните в Вариантах. Локальный запуск, остановка и общие проверки описаны ниже. Узкая проверка новых инструментов после npm run build: node tests/browser-renovation-runner.mjs. Для одного инструмента: FLATPLAN_QA_SCOPE=drawings node tests/browser-renovation-runner.mjs или FLATPLAN_QA_SCOPE=presentation node tests/browser-renovation-runner.mjs; также доступны mechanisms, electrical, estimate, sun-study, comparison. Временный сервер использует порт 4189 и останавливается автоматически. Если механизм не настраивается, выберите предмет целиком или задайте ось отдельной детали; если он заблокирован — разблокируйте его и родительские группы. Если свет не виден, проверьте яркость группы, включение управляемого освещения, направление светильника и положение камеры внутри помещения.
Модель расположена сверху, вкладки и прокручиваемые свойства — снизу. В 3D один палец вращает вид, два пальца меняют масштаб и положение камеры. Точные размеры вводятся в свойствах.
В режиме План один палец перемещает вид при включённом инструменте просмотра. Два пальца увеличивают и сдвигают план. Инструмент перемещения позволяет перетаскивать выбранный предмет; второе касание отменяет незавершённое перемещение. Показать объект крупно находит выбранный элемент.
Автосохранение ждёт паузы в действиях. Вращение, прогулка и масштабирование сохраняют только настройки просмотра после завершения движения; вся квартира заново не записывается. Изменения мебели, отделки и вариантов объединяются в одно сохранение, подготовка которого выполняется в фоновом потоке. Файл → Сохранить сейчас в браузере записывает оставшиеся изменения сразу; при закрытии или уходе со страницы они также сохраняются. Если ничего не изменилось, повторная запись не выполняется. Старые сохранения открываются автоматически, формат переносимого JSON остаётся прежним.
- Файл → Скачать проект JSON сохраняет текущую сцену и все варианты одним файлом.
- Файл → Импортировать проект → Открыть проект открывает JSON на другом устройстве. Восстанавливаются объекты, размеры, цвета, варианты и ракурс. Ошибка импорта оставляет текущий проект без изменений.
- Файл → Сохранить текущий 3D-вид PNG скачивает изображение.
- Файл → Новый проект по файлу .plan → Создать заново создаёт исходный проект с четырьмя вариантами. Это действие можно отменить в текущей вкладке.
- Файл → Сбросить пользовательские данные → Сбросить безвозвратно удаляет личные изменения, пользовательские варианты, имя и настройки вида в этом браузере. Откроется исходный правый план с четырьмя вариантами, очистятся история отмены и ожидающий импорт. Перед сбросом скачайте JSON, если нужна копия.
Сброс затрагивает только данные FlatPlan на текущем адресе. Скачанные файлы, другие сайты, устройства и локальный запуск независимы. В других открытых вкладках автосохранение приостановится: обновите страницу или выберите Файл → Загрузить сохранённое в браузере. Продолжить с текущим проектом явно сохранит старую сцену из той вкладки заново.
Изменения не отправляются в GitHub; облачной синхронизации нет. При конфликте вкладок, повреждении данных или ошибке записи редактор приостанавливает автосохранение и предлагает восстановление/экспорт. Если браузер запретил удаление, текущая сцена и история сохраняются.
Нужен Node.js 22.13+ (рекомендуется Node.js 24). Установите его с nodejs.org, если команды недоступны.
cd /Users/belanovich-sy/Documents/github/flat_plan
npm ci
npm run devОткройте http://127.0.0.1:5173/ или http://127.0.0.1:5173/?view=gallery. Остановка — Ctrl+C. Для следующего запуска повторите cd и npm run dev.
cd /Users/belanovich-sy/Documents/github/flat_plan
npm run verify
npx playwright install chromium
npm run test:browserverify проверяет геометрию, импорт, сохранение, варианты, историю, происхождение изображений, линтер, TypeScript и production-сборку. Браузерная проверка запускает сайт на порту 4188, использует изолированные desktop/mobile-контексты Chromium и останавливает сервер. Проверяются новый план, совместимость старых проектов, JSON, сохранение, сброс, манипуляции мышью/касаниями и галерея. Артефакты находятся в игнорируемой .local/qa/.
npm run previewРучной просмотр сборки — http://127.0.0.1:4173/, остановка — Ctrl+C. Готовый сайт находится в dist/.
Разовый конвертер читает конкретную структуру предоставленного Plan v3. Исходный файл хранится локально, в Git он не нужен.
python3 scripts/import-plan-source.py '/полный/путь/к/файлу.plan'
node scripts/export-gallery-plans.mjs
npm run build
node scripts/render-gallery.mjs
npm run verify
npm run test:browserКоманды обновляют анонимные данные и схемы. Рендер создаёт модельные кадры текущей ревизии и проверяет неизменность повторно используемых кадров: в ROOM-014 это 6 новых PNG и 36 сохранённых. При изменении исходника сначала назначьте затронутым ракурсам новые адреса в данных галереи; устаревшая сцена не пройдёт проверку повторного использования. Фотореалистичные изображения обновляются отдельно через imagegen по новым модельным ракурсам (см. GALLERY_ASSETS.md). Локальный реестр .local/plan-source-identities.json хранит соответствия идентификаторов и не публикуется. При первом переходе с прежнего экспорта передайте --identity-source "/путь/к/предыдущему.plan"; затем сохраняйте реестр для следующих запусков. Конвертер проверяет выбранную квартиру и отсутствие нераспределённых предметов; произвольный файл другого редактора или с иным количеством чертежей требует адаптации. Это не универсальный импорт .plan через интерфейс. Для обновления уже сохранённых проектов нужна отдельная ревизия миграции; не меняйте числовые данные молча.
GitHub Pages использует Settings → Pages → Source → GitHub Actions. Workflow .github/workflows/pages.yml запускает проверки и браузерные сценарии, затем публикует dist/ при push в main. Статус Actions.
Ресурсы работают в каталоге /FlatPlan/ без внешних CDN. Репозиторий и исходная модель публичны; оригинальный файл, его идентификаторы и пользовательские сохранения в публикацию не входят.
lib/plan-source.json,lib/plan-data.ts— анонимные данные и типы.lib/plan-project.ts,lib/plan-furniture.ts,lib/plan-refresh.ts— четыре исходные сцены, сохранение прежнего проекта, условные модели предметов.lib/editor-model.ts— формат JSON версии 1, валидация, локальное хранение, история и варианты. Лимиты: 8 МБ на файл, 30 вариантов, 2500 элементов на сцену.lib/editor-geometry.ts,lib/polygon-validation.ts— общая геометрия 2D/3D, профили стен и проёмы.lib/plan-analysis.ts,app/plan-overlays.tsx— размерные линии, пересечения, дверные зоны и зазоры.lib/furniture-catalog.ts,app/furniture-catalog.tsx— типовые предметы и ввод габаритов;tests/plan-tools.test.ts,tests/browser-plan-tools.mjs— геометрия, сохранение и пользовательские сценарии.lib/editor-scene.ts,app/editor.tsx— Three.js, материалы, камера и интерфейс.app/gallery.tsx,lib/gallery-data.ts,lib/gallery-shots.ts,public/gallery/gallery-012/,public/gallery/gallery-013/,public/gallery/gallery-014/— галерея, модели, готовые интерьеры и происхождение изображений.lib/room-proposal.ts— отдельное предложение комнаты; его SVG и JSON находятся вgallery-014/, исходные SVG — вpublic/gallery/plan-011/plans/.lib/apartment.ts,lib/editor-seed.ts— историческая модель по фотографии и общие фабрики; сохранены для совместимости.tests/plan-source.test.ts,tests/browser-source-plan.mjs— соответствие файлу и сценарии нового плана.lib/editor-webmcp.ts— необязательный API браузера; обычная работа редактора его не требует.
- Нет 3D: откройте «План», обновите браузер и включите аппаратное ускорение. Нужен WebGL 2.
- Изменение отклонено: проверьте сообщение, закрепление объекта, границы проёмов и пересечения контуров.
- Не сохраняется: скачайте JSON, проверьте свободное место и разрешения на хранение данных сайта.
- На другом устройстве исходный план: импортируйте JSON; синхронизации нет.
- Порт занят: остановите прежний сервер или выполните
npm run dev -- --port 5174. - Белый экран при открытии index.html: запускайте через
npm run devилиnpm run preview. - Pages показывает старый сайт: дождитесь зелёного deploy, проверьте регистр
/FlatPlan/и обновите страницу. - Не запускаются браузерные проверки: выполните
npx playwright install chromium; на Linux —npx playwright install --with-deps chromium. Порт 4188 должен быть свободен.
Мебель создана кодом для проекта. Текстура public/textures/oak.jpg сгенерирована imagegen 7 сентября 2026, затем преобразована в JPEG. Запрос: «seamless square photoreal light natural European oak albedo, subtle vertical grain, pale honey neutral color, orthographic scan, uniform diffuse lighting, no objects, text, knots, plank seams, baked shadows or watermark». Палитры и свет можно менять независимо от геометрии.