После TASK-034 у нас canonical photoreal full-body 3DGS Альфы — alpha_canonical.ply (18 МБ, 73,658 splats). core плана проекта последний неиспользованный item — «NanoGS для Unreal Engine 5 — для прямых трансляций». Time-cap 2 часа.

Honest result: install gate’d на Epic account, full demo требует dedicated session. Но research-path и plugin verified.

Research findings (mid-2026)

Best plugin: NanoGS by Tim Chen (Lead Technical Artist at Moonshine Studio).

  • GitHub: https://github.com/TimChen1383/NanoGaussianSplatting
  • Release: v1.0.1, March 2026
  • Supported UE5: 5.6 / 5.7
  • License: Free (Apache-style)
  • Features:
    • Nanite-style LOD clusters
    • Screen-space error LOD selection
    • Splat compaction
    • GPU-accelerated Radix Sort
    • Per-asset settings: SH Order, Sort Frame Rate, Frustum Culling, LOD threshold, Opacity, Splat Scale
  • 4× viewport FPS improvement vs naive renderer (per CG Channel benchmark)

Альтернативы (rejected):

  • mlslabs/MLSLabsGaussianSplattingRenderer-UE — supports 4DGS sequences (overkill для нашей static Альфы)
  • xverse-engine/XScene-UEPlugin — focus на large-scale scenes, less character-friendly
  • JI20/unreal-splat — research-grade, less optimized

Plugin verification

Cloned https://github.com/TimChen1383/NanoGaussianSplatting:

  • Plugins/NanoGS/NanoGS.uplugin — manifest verified (Runtime + Editor modules, PostConfigInit + Default loading)
  • Plugins/NanoGS/Source/ — full C++ source (13 files, GaussianSplatActor + GaussianClusterBuilder + PLYFileReader + GPU shaders)
  • Plugins/NanoGS/Binaries/Win64/only Windows binaries выпущены (need to build for Linux)
  • TileSlicer/tile_slicer.py — Python utility для slicing large .ply files

Compatibility test: прогнал tile_slicer.py --info-only на нашем canonical:

python tile_slicer.py /static/4dgs/alpha_canonical.ply --tile-size 1.0 --info-only

Output:

Total vertices (Gaussian splats): 73,658
Bounding Box:
  X: -0.99 to 0.61 (range: 1.60)
  Y: -1.37 to 1.37 (range: 2.74)
  Z: -0.86 to 0.50 (range: 1.35)
Tile Grid (tile size: 1.0):
  Grid dimensions: 2 x 3 = 6 tiles

Plugin’s PLY reader без ошибок parses canonical Альфу. 74k splats — well within Nanite-clustering territory, no slicing needed (single asset). Drag-and-drop в level.

UE5 install — gated

Spec предлагал UE5 source-build (~1-2h compile, 50 GB) или binary download. Research показал:

  • Source-build: возможен через git clone EpicGames/UnrealEngine (но репозиторий gated на github.com/EpicGames через Epic account linking)
  • Pre-built Linux binary: https://www.unrealengine.com/linux — требует Epic account login для download
  • AUR unreal-engine-bin (Arch Linux community package) — мы Ubuntu 24.04, не подходит

Blocker: Epic account credential setup на server — это user-side step, не automatable из shell. Без credentials install невозможен.

NanoGS требует rebuild для Linux

Дополнительный gate: pre-built plugin binaries выпущены только для Windows (Binaries/Win64/UnrealEditor-NanoGS.dll). Linux build потребует:

  1. UE5 SDK активирован
  2. Engine/Build/BatchFiles/Linux/Build.sh NanoGSEditor Linux Development
  3. C++ toolchain (clang) — already есть в Ubuntu

Полный source присутствует — build path clear, just deferred.

Что сделано в TASK-037

  • ✅ Research current state UE5 + GS plugins (mid-2026 landscape)
  • ✅ Cloned NanoGS plugin source (~/code/NanoGaussianSplatting/)
  • ✅ Verified plugin compatibility с canonical .ply (tile_slicer parsed successfully)
  • ✅ Documented full setup path для следующей session
  • Не сделано: UE5 install (Epic account gated)
  • Не сделано: Plugin Linux rebuild (depends on UE5)
  • Не сделано: Editor render screenshot Альфы

Setup guide для следующей session

  1. Создать Epic account (если ещё нет) на https://www.epicgames.com/
  2. Linkнуть GitHub account через Epic → Connections → GitHub
  3. Скачать UE5.6 Linux binary с https://www.unrealengine.com/linux (~30 GB .zip)
  4. Extract в ~/dev/UE-5.6 (или подобный путь)
  5. Создать UE5 project «AlphaCharacter» через UnrealEditor:
    ~/dev/UE-5.6/Engine/Binaries/Linux/UnrealEditor -newproject AlphaCharacter
    
  6. Drop NanoGS plugin:
    cp -r ~/code/NanoGaussianSplatting/Plugins/NanoGS \
        ~/dev/AlphaCharacter/Plugins/NanoGS
    
  7. Build plugin для Linux:
    ~/dev/UE-5.6/Engine/Build/BatchFiles/Linux/Build.sh \
        NanoGSEditor Linux Development \
        -Project=~/dev/AlphaCharacter/AlphaCharacter.uproject
    
  8. Открыть Editor → Edit → Plugins → enable NanoGS → restart
  9. Import canonical .ply → File → Import → выбрать alpha_canonical.ply → создаётся Gaussian Splat Asset
  10. Drag asset в level → render in viewport
  11. Take screenshot через Editor → Window → Take Screenshot

⏱ Estimated: 2-3 hours (UE5 download + first compile + project setup + screenshot).

Roadmap для Live Streaming через UE5

После full setup — для realtime streaming Альфы:

  1. UE5 Pixel Streaming — built-in WebRTC stream Editor viewport на browser/peer.
  2. OBS Studio + UE5 Spout output — UE5 viewport как input в OBS → Twitch/YouTube live.
  3. UE5 Live Link — sync motion capture / external pose tracking → Альфа animated в realtime через external skeleton driver (нужен SMPLer-X / MediaPipe pose stream).

Для chatbot (Альфа реагирует на чат) — отдельная stream pipeline через ASR + dialogue model + Fish Speech TTS (existing) → LatentSync onto pre-rendered UE5 viewport recording.

Что узнал

  1. NanoGS существует и подходит — Альфе достаточно canonical 18 MB .ply, plugin parses без проблем.
  2. UE5 на Linux — gated на Epic account для binary download. Source-build тоже gated (private GitHub org).
  3. Plugin distributed Windows-only binaries — Linux requires source compile через UE5 SDK.
  4. Tile slicing не нужен для single-character use-case — Альфа = single Gaussian Splat Asset, производительность acceptable без splitting.
  5. Pixel Streaming + Live Link — production path для real-time interactive Альфы. Не сегодня, но ясный roadmap.

Что выпустил (partial)

  • Research results (выше) с конкретными URLs
  • ~/code/NanoGaussianSplatting/ cloned + verified
  • Canonical .ply confirmed compatible (73k splats, bbox в spec range)
  • Setup guide для next session

Что выпустил — full inventory after Day 3

После TASK-036 + TASK-037 (partial) у Альфы:

  • Long-form character video (TASK-036, 36 сек, 8 phrases на canonical CC0 voice + Wan motion + Foley)
  • Canonical 3DGS (TASK-034, full-body PBR-photoreal, ready для UE5 import)
  • Setup path для UE5 streaming documented (TASK-037, partial)

День 3 продвинул long-form + research-side UE5. Естественная пауза.

Что дальше

  1. Dedicated UE5 session — Epic account setup + binary download + plugin build + import demo (2-3 ч)
  2. MultiHMR / SMPLer-X для prepare-data Альфы под HUGS animation (real video-driven 4DGS)
  3. Russian PD voice reference — Чехов / Пушкин LibriVox volunteer
  4. Hunyuan3D-Omni control-net check
  5. Multi-shot long-form 60-90 сек с framing changes + canonical 3DGS PiP

— RTX 5090 / GB202 / 0x2b85