Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Всем привет — я Антон Фокин, CEO Qtim. Вместе с зарубежным заказчиком мы сделали Scanwow — платформу с каталогом 3D-моделей и материалов по подписке. Идея простая: вы выбираете ассет на сайте и получаете не «сырые» файлы, а подготовленный архив под ваш рабочий стек. Скачали, распаковали, импортировали — без дополнительных манипуляций. Из браузера в проект — за секунды.

О чём продукт

Заказчик пришел с собственной библиотекой высокодетализированных моделей и отлаженным производством. Запрос был в платформе «под ключ», где будет витрина, подписка и оплатa, админка для контент-команды и — самое важное — надежная выдача под разные пайплайны.

Снаружи Scanwow выглядит как привычный интернет-магазин: лента 3D моделей, карточки, подписки. Внутри — главное отличие: перед выдачей настраиваем файлы под движок или шейдер, чтобы после распаковки архива можно было сразу продолжать работу в проекте. Не нужно вручную перекладывать каналы, менять ориентацию нормалей или перешивать цветовой профиль — эти шаги выполняет экспортер на стороне сервера.А теперь «переводим» на человеческий: перед скачиванием система сама подгоняет файлы под запрос и собирает готовый архив. Скачали, распаковали — можно продолжать работу, не ковыряясь в настройках.

Кому это нужно и какую задачу закрывает

Scanwow поможет гейм-дизайнерам и 3D-художникам, которые каждый день собирают уровни, сцены и предметы в играх. Их боль — не в поиске модели как таковой, а в доводке: «почему движок не подхватил файл, почему рельеф на модели выглядит странно (как будто «перевернулся»), и почему то, что должно быть матовым, начинает блестеть (обычно из-за неверных настроек файла)». Scanwow снимает эти рутинные шаги: совместимость обеспечивается на этапе скачивания — за счёт пресетов и серверной подготовки. В результате, время между «нашёл ассет» и «продолжаю работу в проекте» становится предсказуемым.

Путь пользователя: от карточки до готового архива

Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Сценарий устроен, как покупка в интернет-магазине — но с технической «подкладкой». Сначала пользователь находит 3D модель в каталоге, открывает карточку и видит примеры, ключевые параметры и совместимость. Далее выбирает пресет «под себя» — и жмёт «Скачать». Если пользователь находится на сайте, загрузка начинается автоматически. Потом остается распаковать архив и импортировать в проект.

Экспортер

Настроить пресет под себя было бы невозможно без экспортера моделей. В нем идет настройка всего необходимого для выгрузки. Он собирает «правильный» комплект файлов под указанный движок. Пресет фиксирует:

  • Формат модели: например, USD / FBX / glTF
  • Схему карт: в одном файле или раздельно. Типичный кейс — собрать ORM/MRA в нужном порядке (Occlusion/Roughness/Metallic или Metallic/Roughness/AO), либо оставить отдельные карты — как требует стек.
  • Ориентацию нормалей: OpenGL или DirectX — чтобы не ловить инверсию рельефа.
  • Цветовой профиль и битность: sRGB / Linear / ACEScg, 8-бит или 16-бит, когда важен диапазон.
  • Разрешения и именование: сетка целевых размеров и имена файлов, которые движок «узнаёт» при импорте. В выбранной программе файлы сразу попадают «в свои поля», без ручного сопоставления.
  • Manifest/metadata: служебное описание для предсказуемой раскладки материалов.

Реализация — целиком на сервере: конвертация текстур (PNG/TIFF/EXR), пересборка каналов по схеме пресета, выравнивание профиля/битности, нормализация карт нормалей, проверка структуры ассета и упаковка модели с текстурами в единый архив. Используем конвертацию через OpenImageIO, а сама задача уходит в очередь фоновых процессов — поэтому браузер не «зависает», и пользователь спокойно получает ссылку по готовности.

Технически внутри — Nest.js на бэке, PostgreSQL для данных, Redis для ключей и очередей. Отдачу тяжёлой статики ускоряет прокси/CDN, чтобы бэкенд не занимался раздачей файлов.

Личный кабинет — что у пользователя под рукой

Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

После регистрации у каждого есть доступ к личному кабинету, в нем можно посмотреть текущий тариф, узнать какие модели скачивались и другие полезные разделы

Раздел «Мои скачивания»

Это история загрузок. В списке — модели, для которых пользователь уже получал архивы/текстуры. Удобно повторно скачать нужный комплект без повторного поиска по каталогу.

Раздел «Моя библиотека»

Личные закладки — место, куда складывают модели «на потом» и для быстрых возвратов. В избранном можно собирать референсы для проекта, держать «кандидатов» перед выбором, сохранять вдохновляющие примеры. Внутри можно делать тематические подборки — например, «скалы», «дерево», «урбан-декор», «для текущего уровня» — и быстро переходить к ним в один клик.

Раздел «Достижения»

В профиле показывается список доступных целей и его прогресс по каждому. Логика простая и понятная:

— счётчиковые цели (например, 7 дней подряд заходов; 10/100/1000 скачанных текстур; 1/5/100 созданных пресетов);

— разовые события (например, регистрация);

— по времени (вернулся и авторизовался спустя 30 дней).

Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Как устроена сторона авторов контента

Сейчас каталог моделей наполняет команда заказчика из админки. Они готовят стандартный архив (четыре папки: High / Mid / Low / Render + два JSON с путями и параметрами — размеры, битность, каналы и т. п.) и загружают его. Платформа в фоне распаковывает пакет и разбирает структуру; время зависит от объёма. После распаковки архив либо заполняет пустой «каркас» модели, либо полностью перезаписывает данные уже существующей модели — без ручных правок.

Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Повседневные операции выполняются в AdminJS:

— Модели. Добавить новую или обновить существующую.

— Контент сайта. Отредактировать тексты и изображения на страницах.

— Пользователи. Открыть список аккаунтов, посмотреть активные и прошедшие подписки.

— Тарифы. Открыть карточку плана и отредактировать её: поменять название и описание, указать цену в долларах, выбрать «помесячно» или «за год», при необходимости временно скрыть план с сайта или снова показать.

— Промокоды. Выпустить промокод с ограничением по сроку и количеству активаций.

— Достижения. Можно посмотреть список всех доступных на данный момент, результаты пользователей скрыты.

Все это может сделать администратор платформы, без участия разработчика.

Тарифы: как оплатить Scanwow

В Scanwow доступ оформляется по подписке. Оплата идёт через PayPal, можно выбрать помесячный или годовой вариант. По умолчанию подписка с автопродлением, но его можно отключить. Если автопродление выключили, доступ остаётся до конца уже оплаченного периода, после чего аккаунт возвращается на Free. Статусы платежей система получает через вебхуки — так права включаются/отключаются без ручных действий.

Выбрать нужную помогают два критерия:

  • сколько скачиваний нужно в месяц
  • какие права и инструменты требуются (коммерческая лицензия, расширенный экспорт и т. п.).
Scanwow. «Магазин» 3D-моделей, который выдает подготовленный архив под ваш пайплайн

Что происходит «за кулисами» и где было сложнее всего

Прежде чем перечислять решения, важно объяснить, зачем их делали — и как это сказывается на опыте пользователя.

Разная логика карт и цветов в стеках.

Проблема понятная каждому художнику: один движок ждёт ORM-карту в конкретном порядке каналов, другой — отдельные файлы; где-то нормали должны быть под DirectX, где-то под OpenGL; цвет в одних случаях должен быть Linear, в других — sRGB/ACEScg. Если отдать «универсальный набор», начинается ручная перекладка и отладка. Вынесли это в пресеты экспортёра: порядок каналов, профили, битность, ориентация нормалей, именование. Результат — меньше ручных правок и предсказуемый импорт.

Проще объясняя, у разных программ свои правила «как назвать файл и что в нём лежит». Если их не соблюсти — модель блестит не там, рельеф перевёрнут, цвета «плавают», и всё приходится чинить вручную. В Scanwow это подгоняет экспортёр: вы выбираете нужный вариант — платформа сама приводит файлы к тем правилам, которые ждёт ваша программа.

Простота для большинства и гибкость для профи.

С одной стороны, хочется «два клика»: выбрал пресет — скачал. С другой — иногда нужно задать битность 16-bit, поменять профиль на ACEScg, разложить карты по-своему или выбрать формат модели (USD/FBX/glTF). Разделили интерфейс на два уровня: краткие настройки прямо в карточке модели и полноценная панель экспортёра для тонкой настройки и сохранения шаблонов. Так не перегружаем основной сценарий, но оставляем контроль, когда он нужен.

Результат

Сделали платформу с каталогом 3D-моделей, кастомным экспортером и личным кабинетом. Сервис запущен и готов к масштабированию. Вот что говорит заказчик:

«Нам была важна своя платформа-каталог 3D-моделей. Сканирование у нас автоматизировано, объем быстро растёт, а стандартные стоки оказались негибкими и плохо масштабируются — они не подходят под массовую модель, к которой мы идём. Мы выбрали вашу команду по двум причинам. Во-первых, за счёт сильного присутствия в интернете и статей — это даёт ощущение профессионализма и устойчивости. Во-вторых, из-за нестандартного подхода к корпоративному сайту: он живой, современный, без бюрократии. Для нас это сигнал, что команда мыслит гибко. Отдельный плюс — готовность работать без жёсткого ТЗ. С нулевым опытом это критично, когда сам до конца не понимаешь, что хочешь видеть в итоге. Процесс работы был комфортным: быстрые ответы, спокойное отношение к правкам, реальный интерес к специфике проекта. Всё шло ровно, без лишних заморочек. Сейчас мы на старте большого пути, но фундамент уже есть. Самые ценные функции на сегодня — кастомный экспортер и поиск/фильтр: пользователи быстро находят нужные сканы в большом каталоге и выгружают их в нужном формате без ручных операций. Это критично для нашей модели и подтверждает правильное направление развития. В планах — расширение возможностей: страницы вакансий, обучающие материалы, 3D-просмотр, инструменты для работы с текстурами и моделями, добавление сторонних ассетов и многое другое. Отдельно развиваем идею платформы для 3D-художников: небольшие задачи с вознаграждением. Такой работы много, её хочется систематизировать и автоматизировать».

Если планируете запуск или развитие интернет-магазина, посмотрите, как мы работаем с e-commerce-проектами. Чтобы обсудить задачу, напишите — разберем вводные, предложим подход и оценим сроки.