Wall.Space

00:00
00:00

Wall.Space

Daydream Scope

Explore new worlds with Daydream Scope

Check out the latest model drops and powerful integrations.

Download Now

Wall.Space is a Desktop application for controlling large-scale video wall installations, events, and broadcasts. Combining CRT monitors, HDTVs, LED panels, and projectors with 1-1 and infinite virtual room combinations. Built with Electron, React, TypeScript, and Three.js.

Composites multiple video sources (webcam, media, screen capture, AI Generated) across configurable 3D spaces with multi-wall support, zone-based grouping, projection mapping with corner-pin warping, and real-time 3D preview. Outputs to physical displays via 4K output windows and to external apps (Resolume, TouchDesigner, Scope) via NDI and Syphon/Spout streaming.

I originally built this app with the intent to manage a 45 CRT wall that I installed with my friend on Jan 31st, 2026 Started the Project Feburary 2nd! Been a wild 3 weeks and very thankful for all the support from the daydream/scope team! Cant believe I got so much done in so little time, excited for the days, months and years ahead! This program couldn't have come at a better time for me and so happy the team reached out about joining!

Scope/Daydream product Features added during this two week cycle:

Daydream API Direct integration For SDXL/SD Turbo V1 with advanced sourcing and CNet groupings

Runpod Volume Network for Scope API/Plugin Effeciency

On-demand Runpod system for chaining scope api pipelines

Bidirectional scope pipeline creation, preprocessing and postprocessing

Local remote inference NDI in and Out into and from app into Scope

NDI Bridge from App to WebRTC to Plugin and Back

Two Scope Plugins (https://github.com/jackmo650/scope-wallspace) though this was just in attempt to get bidirectional scope cloud plugins to work with app, did not test much since never got past cloud runpod/webrtc issues. 

Scope API direct integration for T2V content from AI models

Depthanything processing on media and cam content

NDI In/Out to scope
Stubbed Spout tansport layer for PC integrations

Local GPU support for Scope in app

Wall.Space — 237 commits                                                                                                                                           

  Feb 20 (today) — NDI/Scope Integration & UI Polish (26 commits)                                             

  - NDI/Syphon source types in layer editor, NDI hot-plug fix                           

  - WebRTC/Daydream transport re-enabled in external output                             

  - VP8 codec forcing for Scope WebRTC                                                  

  - Real NDI receive/send via ndi-helper subprocess                                     

  - NDI + Scope round-trip integration (bypassing WebRTC)                               

  - GPU & Resources layout fixes

  - Pipeline ID bug fixes (passthrough fallback, effectivePipelineId)

  - Wall.Space Relay companion plugin

  - ControlNet composite fixes, auto-subgroup, preview canvases

  - Layer copy/paste/DnD, auto-group rewrites (scene-aware)

  - Daydream & Scope compact multi-column grid layouts

  - NDI_MODULE.md updated

  Feb 19 Layer Groups, ControlNets, 3D Tab Overhaul (42 commits)

  - Layer groups (folders) with dual visibility, Photoshop-style panel

  - Multi-level group nesting, duplication, multi-select

  - ControlNet preprocessing as layer effects, per-source mapping

  - 3D tab restructure: theater mode (Cmd+Shift+F), flex sidebars, fill canvas

  - Sources panel as 3-column grid, GPU Console as 4-column grid

  - Outputs tab: 3-column flex, External tab, compact ExternalOutputCard

  - Scene buttons compact, layer preview toggle

  - Many 3D viewport fill/resize/stability fixes

  Feb 18 Scope V2, ControlNets, Two-Zone Layout (36 commits)

  - Scope V2: Docker management, 3-panel UI, fal.ai cloud, plugin manager

  - RunPod S3 API for LoRA upload, network volume management

  - ControlNet bidirectional sync, per-CN source routing

  - Two-zone locked layout, draggable/resizable preview panels

  - Height-aware single wall viewport, viewport zoom (Magnet/Overlay)

  - 4-column sub-tab layout, compact vertical spacing

  - Renamed app to Wall.Space

  Feb 17 Per-Layer Scope, Source Routing, Previews (18 commits)

  - Per-layer Scope controls, route isolation, live prompts

  - Shared source/target dropdowns, all-layers source

  - Cross-scene Daydream source, scene-grouped source dropdown

  - Reusable hierarchy panel, canvas overlay editing

  - ControlNet preview fix, CRT masking fix for Physical Preview

  - Collapsible sidebars replacing overlays

  Feb 16 Pipeline Loading, RunPod GPU Management (22 commits)

  - Dynamic pipeline parameter controls, LoRA management

  - Pre/post processor chaining, plugin catalog audit

  - Robust pipeline loading: download gates, retry loops, progress UI

  - RunPod pod management: discover existing, GPU stock badges, datacenter filtering

  - V2V feedback loop fixes, model status endpoint workarounds

  - Grey out unavailable pipelines with TBA labels

  Feb 15 Scope Bidirectional Routing, WebRTC Fixes (10 commits)

  - Bidirectional Scope plugin routing (plugins as inputs & outputs)

  - RunPod GPU pod linking, GPU Resources section

  - WebRTC video rendering fixes, pipeline guard before offer

  - Grid-select, cross-layer routing, layer-as-source

  Feb 14 Room System, 3D Preview, Daydream Cloud (19 commits)

  - GPU Console Manager with quality/FPS control

  - Daydream Cloud integration

  - ControlNet previews in Outputs tab

  - Per-CRT scene assignments, all-walls view

  - Room-based 16:9 canvas, immersive fill mode

  - Display area warnings, per-display spacing/mount props

  Feb 13 Scope Plugin System (9 commits)

  - Custom Scope plugin, plugin catalog audit

  - Pipeline status fixes, VRAM badges

  - WebRTC decoder activation fix (DOM attachment)

  - Scope v0.1.3 support, VACE ref images

  Feb 12 Scope Docs & Routing (6 commits)

  - Scope integration docs for v93

  - HuggingFace token input

  - RunPod template fix, VRAM filter

  Feb 11 NDI & Syphon/Spout Modules (17 commits)

  - NDI module: bridge + service + layer integration (Chunks 1-5)

  - Syphon/Spout module: main process bridge, renderer service, output manager, hot-plug

   (Chunks 1-8)

  - GridPackCompositor + OutputGridSelector

  - Layer effects regression fix

  Feb 10 Major Refactor + Setup Wizard (22 commits)

  - 12 extraction refactors (10K+ code refactored): SetupModal, OutputsTab, CanvasView, useProjectorHelpers,

  useCRTHandlers, usePhysicalPreview, use3DPreview, and 5 shared utilities

  - 129 TypeScript errors fixed (clean tsc --noEmit)

  - Output grid auto-config, display type colors, L1/L2 visualization

  - Canvas mapping, compositor pipeline, layer modes

  Feb 9 3D Edit Mode & Presets (10 commits)

  - 3D CRT effects, camera freedom, edit panel polish

  - Multi-edit, sublayer selection, orbit controls

  - DisplaySize-based grid positioning

  - Immersive Theater presets, pyramid output fixes

  ---

  Daydream NDI Bridge 13 commits (all Feb 20)

  ┌─────────┬─────────────────────────────────────────────────────┐

  │ Commit  │                     Description                     │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 1e3f9ad │ Update skill doc for ndi-helper subprocess          │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 7ef3217 │ Update docs with resolved NDI sender root cause     │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 54b4b33 │ Fix ndi-helper JSON parsing (compact separators)    │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 8fc2286 │ NDI sender troubleshooting report + reconnect fix   │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ a2c53e1 │ Replace ctypes sender with ndi-helper subprocess    │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ c562323 │ NDI sender struct layout experiments                │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 2445fc1 │ Allow truncated JPEG frames in output path          │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 6d377d5 │ Pipeline dropdown crash fix + WebRTC auto-reconnect │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ e879288 │ Pipeline load order + NDI sender init               │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 3ba5201 │ Refresh Pipelines button                            │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 1ca5dc8 │ Comprehensive docs (architecture, skill, files)     │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 0dc9e86 │ Dynamic pipeline loading + configurable resolution  │

  ├─────────┼─────────────────────────────────────────────────────┤

  │ 09450bd │ NDI output return path + Scope-only mode    

Attachments
v16