# Как отсканировать комнату или предмет в 3D на Android: настройка ScanDot и альтернативы

> AI Release · @ai_release1 · https://ai-release.org/guides/kak-otskanirovat-komnatu-ili-predmet-v-3d-na-android-na.html

## TL;DR
- **Время выполнения:** 30–40 минут на настройку (само сканирование комнаты — отдельно, зависит от площади).
- **Уровень сложности:** Basic.
- **Понадобится:** Android-смартфон с исправной камерой; установленный Google Play; ПК с Android platform-tools (`adb`) и USB-кабелем; запас свободного места на телефоне; ровная площадка с рассеянным светом.
- **Результат:** файл скана, физически перенесённый на ПК, плюс проверенный способ убедиться, что любое альтернативное приложение действительно пишет 3D-данные, а не просто фотографии.

## Требования и подготовка
![Иллюстрация к разделу «Требования и подготовка»](https://ai-release.org/guides/img/kak-otskanirovat-komnatu-ili-predmet-v-3d-na-android-na-ru-1.jpg?v=1794559357)


- **ОС телефона.** Минимальную поддерживаемую версию Android смотрите в карточке приложения в Google Play — **сверьтесь с документацией**, универсальной цифры нет.
- **Пакет приложения.** Точное имя пакета берётся из URL страницы в Play: `https://play.google.com/store/apps/details?id=<package>`. Всё, что после `id=`, — это и есть `<package>`.
- **ADB на ПК.** Android platform-tools (входят в Android SDK). Проверка:
```bash
adb version
```
Ожидаемый вывод — строка вида `Android Debug Bridge version 1.0.xx` и `Installed as /usr/bin/adb`.
- **Кабель и режим разработчика.** В телефоне: «Настройки» → «О телефоне» → 7 раз нажать «Номер сборки» → «Для разработчиков» → включить «Отладка по USB».
- **Свободное место.** Сканы — тяжёлые файлы. Точный размер одного скана **сверьте с документацией** приложения, а запас проверьте командой из Шага 1.
- **Свет.** Ровное рассеянное освещение: прямые лампы и солнечные блики на глянце дают «дыры» в геометрии — это ограничение метода, а не ошибка настройки.

Чек-лист перед стартом:

- [ ] Отладка по USB включена
- [ ] `adb devices` показывает устройство в статусе `device`
- [ ] На телефоне есть свободное место под скан
- [ ] Приложение установлено из Play (или APK проверен)
- [ ] Камера протёрта, объектив без чехла
- [ ] Известен точный `<package>` приложения

## Шаг 1. Проверка связки «телефон — ПК» и постановка базовых параметров

**Что сделать:** подключить телефон кабелем, подтвердить авторизацию отладки и снять базовые метрики устройства.

**Зачем:** без рабочего `adb` вы не сможете ни выгрузить скан, ни доказать, что приложение действительно создало файл, а не сохранило превью.

**Как проверить:** последовательно выполнить три команды.

```bash
adb devices
```
Ожидаемо: устройство в статусе `device`, а не `unauthorized`.
```
List of devices attached
R58M12ABCDE	device
```

```bash
adb shell df /sdcard
```
Ожидаемо: таблица с колонкой `Available`, где под `/storage/emulated` есть свободный объём.

```bash
adb shell getprop ro.build.version.release
```
Ожидаемо: номер версии Android, например `13`. Сравните его с требованиями приложения.

**Пример:** если `adb devices` вернул `R58M12ABCDE	unauthorized`, команда `df` уже не выполнится — сначала разблокируйте телефон и нажмите «Разрешить отладку по USB» в диалоге.

**Почему это работает:** `adb` общается с демоном `adbd` на телефоне; статус `device` означает, что ключ ПК принят и shell-доступ есть.

## Шаг 2. Установка ScanDot, выдача разрешений и запись скана
![Иллюстрация к разделу «Шаг 2. Установка ScanDot, выдача разрешений и запись скана»](https://ai-release.org/guides/img/kak-otskanirovat-komnatu-ili-predmet-v-3d-na-android-na-ru-2.jpg?v=1794559366)


**Что сделать:** установить приложение из Google Play, выдать разрешение на камеру, выполнить сам проход сканирования.

**Зачем:** это ключевой этап — 3D-модель строится именно здесь, и большинство провалов происходит из-за отказа в разрешении или прерванной сессии.

**Как проверить:** наличие пакета и факт запуска.

```bash
adb shell pm list packages | grep -i scan
```
Windows PowerShell:
```powershell
adb shell pm list packages | findstr /i scan
```
Ожидаемо: строка `package:<package>` ровно с тем именем, что вы взяли из Play. Если список пуст — приложение не установилось или имя пакета не содержит слова «scan»; проверьте точное имя по URL.

Теперь сам скан:

1. Откройте приложение и нажмите «Новое сканирование» (название пункта меню **сверьте с документацией** — в разных версиях формулировки отличаются).
2. На вопрос системы «Allow ScanDot to take pictures and record video?» ответьте «While using the app». Отказ даёт пустой видоискатель.
3. Обходите объект или комнату медленно, удерживая объект в центре кадра, с перекрытием соседних кадров примерно на треть. Резкие повороты телефона дают разрывы.
4. Замкните проход по кругу и вернитесь в точку старта — так трекер «склеит» первую и последнюю части.
5. Остановите запись и дождитесь обработки. Не блокируйте экран: часть приложений прерывает обработку при уходе в фон.

**Пример:** вы сканируете стул. Начните с ножек по кругу на высоте 1 м, затем пройдите ниже — на высоте сиденья, затем обойдите спинку сверху. Три прохода с перекрытием дают меньше дыр, чем один длинный.

**Если ScanDot недоступен — как оценить альтернативу.** Любое приложение-альтернатива проверяется теми же командами. Требуйте: разрешение `android.permission.CAMERA` и, если приложение позиционируется как AR, зависимость от `com.google.ar.core` (Google Play Services for AR) — без него трекинг на части устройств не заведётся.

```bash
adb shell dumpsys package <package> | grep -i "android.permission.CAMERA"
```
Ожидаемо: `android.permission.CAMERA: granted=true`. Если `granted=false` — приложение установлено, но разрешение не выдано, и оно не сможет сканировать.

Про сам скан в фоне и локальную обработку на телефоне полезно почитать в гайде [Как запустить ИИ-модель локально на Android](https://ai-release.org/guides/kak-zapustit-ii-model-lokalno-na-android-prilozheniya-i.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — там разобрано, как ведут себя приложения при нехватке памяти и перегреве.

## Шаг 3. Проверка результата и выгрузка скана на ПК
![Иллюстрация к разделу «Шаг 3. Проверка результата и выгрузка скана на ПК»](https://ai-release.org/guides/img/kak-otskanirovat-komnatu-ili-predmet-v-3d-na-android-na-ru-3.jpg?v=1794559370)


**Что сделать:** найти файл скана на телефоне и выгрузить его на ПК.

**Зачем:** до выгрузки вы не знаете, сохранился ли скан целиком — приложение могло записать только превью.

**Как проверить:** сначала посмотрите список файлов, затем скачайте каталог.

```bash
adb shell ls -lh /sdcard/Android/data/<package>/files/
```
Ожидаемо: строки с размерами, например `-rw-rw---- 1 u0_a123 sdcard_rw 42M 2024-01-01 12:00 model.obj` (имя и формат зависят от приложения — **сверьтесь с документацией**).

Если каталог пуст или его нет, проверьте стандартные места сохранения:

```bash
adb shell ls -lh /sdcard/DCIM/
adb shell ls -lh /sdcard/Download/
```

Выгрузка:

```bash
adb pull /sdcard/Android/data/<package>/files/ ./scan_out
```
Ожидаемо: строка `1 file pulled, 0 skipped` (или несколько файлов) и появление каталога `./scan_out` на ПК.

**Пример:** `adb pull /sdcard/Android/data/com.example.scanner/files/ ./scan_out` положит модели в папку `scan_out` рядом с текущим каталогом терминала.

**Почему это работает:** `adb pull` копирует файл по протоколу adb без MTP-посредника, поэтому он не «рвётся» на больших моделях, в отличие от передачи через проводник Windows.

Если после сканирования нужно постоянно синхронизировать папку со сканами с ПК, посмотрите [открытые альтернативы Microsoft Phone Link](https://ai-release.org/guides/kak-svyazat-android-s-windows-bez-microsoft-phone-link.html?utm_source=tg&utm_medium=channel&utm_campaign=guide_inline&utm_content=guide_to_guide) — там разобраны способы связи без проприетарного моста.

Успех выглядит так: в `scan_out` лежит файл модели, его размер — десятки мегабайт, а не сотни килобайт (последнее означало бы превью или миниатюру).

## Возможные проблемы и решения

**Проблема. ADB не видит телефон.**

- Ошибка: `error: no devices/emulators found`
- Причина: отключена отладка по USB, кабель только для зарядки или не подтверждён ключ ПК.
- Решение: проверьте кабель на передачу данных, переподключите, выполните `adb kill-server && adb start-server && adb devices`. Если статус `unauthorized` — разблокируйте телефон и подтвердите диалог.

**Проблема. Файл скана не находится по ожидаемому пути.**

- Ошибка: `adb: error: failed to stat remote object '/sdcard/Android/data/<package>/files/': No such file or directory`
- Причина: неверный `<package>` (опечатка или другое приложение) либо приложение пишет в `DCIM`/`Download`.
- Решение: уточните имя пакета командой `adb shell pm list packages | grep -i scan`, затем проверьте `adb shell ls /sdcard/DCIM/` и `adb shell ls /sdcard/Download/`.

**Проблема. Установка APK вручную прерывается.**

- Ошибка: `Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]`
- Причина: на устройстве не хватает места под установку и данные приложения.
- Решение: освободите место (проверка — `adb shell df /sdcard`), затем повторите `adb install -r <файл>.apk`.

## Резюме и следующие шаги
Вы настроили связку «телефон — ПК», выдали разрешения, записали скан и физически выгрузили файл модели в `scan_out`. Дальше проверьте геометрию в любом просмотрщике 3D-моделей на ПК и, если есть разрывы, повторите проход с большим перекрытием кадров и более ровным светом.

## FAQ

**Почему в скане появляются дыры и рваные края?**
Трекер теряет объект на однородных, глянцевых или прозрачных поверхностях и при резких поворотах телефона. Уменьшите скорость прохода, добавьте рассеянный свет и обеспечьте перекрытие соседних кадров примерно на треть.

**Нужен ли интернет во время сканирования?**
Зависит от приложения: часть обрабатывает кадры на устройстве, часть отправляет их на сервер. Проверьте поведение в авиарежиме и **сверьтесь с документацией** — это единственный надёжный способ.

**Сколько места занимает один скан?**
Размер зависит от разрешения текстуры, площади сцены и формата экспорта; универсальной цифры нет — **сверьтесь с документацией** приложения и контролируйте свободное место командой `adb shell df /sdcard`.

**Телефон греется, и сканирование обрывается. Что делать?**
Снимите чехол, не заряжайте телефон во время скана, разбейте большую комнату на 2–3 сегмента и сохраните каждый отдельно. Если приложение обрабатывает данные на устройстве, часть нагрузки можно перенести на ПК — подходы разобраны в гайде про локальный запуск моделей на Android.
