Skip to content

Repository files navigation

Spatial Forge

Локальный браузерный 3D-планировщик квартир, домов и земельных участков. Работает как визуальный редактор: добавляйте прямоугольные и треугольные блоки на сетку, настраивайте стены, переключайте этажи и размещайте свои модели.

Возможности

  • интерактивная 3D-сцена с вращением, панорамированием и масштабированием;
  • прямоугольные и треугольные помещения с привязкой к сетке 0,5 м;
  • произвольные контуры до 24 вершин с проверкой пересечений;
  • точное редактирование координат отдельных вершин с нумерацией в 3D;
  • вставка вершин в середину стены и безопасное удаление лишних точек;
  • выбор и перетаскивание вершин в 3D с привязкой 0,5 м;
  • самостоятельные стены по двум опорным точкам с точной длиной, высотой, толщиной и цветом;
  • независимые цвета и текстуры сторон A/B самостоятельной стены с визуальными метками в 3D;
  • магнитное соединение концов стен в общие углы, сохраняющиеся при точном редактировании координат;
  • Т-образные соединения с привязкой к середине и автоматическим разделением целевой стены;
  • непрерывное построение цепочек стен с автоматическим замыканием контура;
  • точный ввод длины и угла каждого сегмента прямо во время построения стены;
  • автоматические скошенные углы и подрезка Т-стыков без наложения геометрии;
  • множественный выбор блоков и объектов через Shift-клик;
  • выделение нескольких элементов рамкой в виде сверху с добавлением через Shift;
  • совместное перемещение, поворот, копирование и удаление выделенной группы;
  • пользовательские слои для комнат, самостоятельных стен и 3D-объектов: назначение выделения, цвет, скрытие и блокировка;
  • режимы 3D-манипулятора для перемещения, вращения и равномерного масштабирования одиночных элементов и групп;
  • умная привязка одиночных элементов и групп по краям, углам и центрам с координатными направляющими;
  • точная настройка положения, размеров, высоты и толщины стен;
  • отдельное редактирование каждой грани стены;
  • до восьми дверных и оконных проёмов на каждой грани комнаты или самостоятельной стене с автоматическим размещением без пересечений;
  • загрузка текстур PNG, JPEG и WebP и применение к выбранной стене;
  • несколько этажей, режим активного этажа и общий вид;
  • отдельные плиты перекрытия по точным контурам комнат с настройкой толщины и цвета;
  • плоские и двускатные крыши этажа с высотой, свесом, цветом и направлением конька;
  • инженерные трассы электрики, водоснабжения и отопления с построением по сетке, отдельной видимостью и точными параметрами;
  • межэтажные стояки с выбором уровней, диаметром и независимым подключением к трассам на обоих этажах;
  • узлы ветвления и объединения до 16 совместимых трасс с автоматическим поиском связей и проверкой полноты узла;
  • инженерные точки: розетки, выключатели, электрощиты, вода, сливы и радиаторы с магнитом к стенам, высотой, номиналом и привязкой к совместимым трассам;
  • ведомость площадей по этажам с вычетом дверных и оконных проёмов;
  • расчёт расхода краски, обоев, напольных покрытий, бетона и кровли с настраиваемыми ценами и запасом;
  • инженерная ведомость с длиной трасс, стояков и отводов, запасом кабеля и труб, ценами и экспортом в CSV;
  • проверка нагрузки связанных инженерных участков с рекомендацией диаметра и исправлением в один клик;
  • назначение источника сети, автоматическое направление потока и расчёт нагрузки отдельных ветвей;
  • экспорт сметы и объёмов материалов в CSV;
  • переименование, настройка отметки и полное дублирование этажей;
  • локальный межпроектный буфер для переноса комнат и целых этажей вместе с проёмами, отделкой, стенами и объектами;
  • каталог стартовых планировок с мини-планами: семейный дом, компактная квартира, садовый участок и чистый проект;
  • встроенная библиотека мебели и деревьев;
  • параметрическая лестница для многоэтажных проектов;
  • загрузка собственных самодостаточных моделей GLB 2.0;
  • режим квартиры и режим земельного участка;
  • виды камеры: перспектива, сверху и спереди;
  • режим размеров с длинами всех стен, названиями помещений и площадью;
  • экспорт текущего ракурса 3D-сцены в PNG;
  • локальное автосохранение и импорт/экспорт проекта в .spatial.json;
  • перемещение выбранных комнат и объектов 3D-манипулятором;
  • отдельная загрузка 3D-движка, рендер сцены по требованию и оптимизированное обновление больших проектов;
  • история последних 60 изменений с отменой и повтором.

Запуск

Требуется Node.js 22+.

npm install
npm run dev

Проверка и production-сборка:

npm run typecheck
npm run lint
npm run build
npm run preview

Управление

  • левая кнопка мыши — выбор элемента или вращение камеры;
  • правая кнопка — панорамирование;
  • колесо — масштаб;
  • V, R, T — выбор, прямоугольник, треугольник;
  • L — непрерывная цепочка стен: после первой точки можно задать точную длину и угол сегмента; Enter в поле добавляет сегмент, Enter или Escape вне полей завершает цепочку; возврат в начало замыкает контур;
  • P — произвольный контур; Enter завершить, Escape отменить;
  • Delete — удалить выбранный элемент;
  • Shift + клик — добавить элемент в групповое выделение или убрать его;
  • в виде сверху протяните рамку по пустому месту; удерживайте Shift, чтобы добавить найденные элементы;
  • W, E, S — перемещение, вращение и масштабирование выбранного;
  • ] — повернуть выбранный блок или объект на 15°;
  • 1, 2, 3 — переключить вид камеры;
  • D — показать или скрыть размеры и площади;
  • Escape — снять выделение;
  • Ctrl/Cmd + Z — отменить, Ctrl/Cmd + Shift + Z — повторить.

Для переноса содержимого откройте панель «Между проектами» в инспекторе, скопируйте выбранную комнату или активный этаж, затем откройте другой проект и нажмите кнопку вставки. Буфер хранится только на текущем устройстве.

Форматы и приватность

Spatial Forge не отправляет планировки и пользовательские файлы на сервер. Геометрия проекта сохраняется в localStorage, а проверенные текстуры и GLB-модели — в локальной IndexedDB браузера. Библиотека восстанавливается после перезагрузки на этом устройстве; при переносе JSON на другой компьютер исходные файлы ассетов нужно добавить отдельно.

Ограничения импорта:

  • проект JSON — до 2 МБ;
  • текстура PNG/JPEG/WebP — до 8 МБ и 8192×8192;
  • модель — самодостаточная GLB 2.0 без внешних URI, до 25 МБ;
  • локальная библиотека — до 100 файлов и 150 МБ суммарно;
  • до 12 этажей, 500 геометрических блоков, 1000 самостоятельных стен и 200 объектов.

Технологии

React 19, TypeScript, Vite, React Three Fiber, Three.js, Drei и Zustand.

Ближайшие идеи

  • облачные проекты и совместное редактирование;
  • совместные комментарии и история версий проекта.

Лицензия

MIT

About

Браузерный 3D-планировщик квартир, домов и участков: этажи, стены, материалы, инженерные сети, слои и свои GLB-модели

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages