Find the frame in the real location
SetView
A browser-based WebXR previsualization tool for blocking actors, lenses, cameras, focus, lighting, and scene timing inside the physical location before a crew arrives.
- Runtime
- WebXR immersive AR in Meta Quest Browser
- Stack
- Three.js, TypeScript, Vite, and native browser APIs
- Storage
- localStorage, IndexedDB, and portable scene JSON
- Handoff
- Plans, shot lists, video takes, and Unreal Engine import
The project
What it does
SetView is made for the moment a cinematographer stands in a real room and needs to answer practical questions before the day begins. Virtual actors can be placed on the real floor, given keyframed blocking and stance changes, then viewed through cameras with real sensor formats, focal lengths, aperture, focus distance, and anamorphic options.
The core scene, lens, timeline, pose, history, and plan logic is pure TypeScript. WebXR services translate controller, hand, hit-test, anchor, scan, and headset input into that domain model. The same scene can be prepared on a laptop, played back in AR, recorded with scratch audio, exported as production documents, or imported into Unreal Engine.
Built around
Product principles
Optics that mean something
Filmback, focal length, T-stop, circle of confusion, and rack focus shape the virtual camera view.
Blocking with time
Actor marks preserve stance, scale, facing, position, and timing instead of acting like static furniture.
Light inside the location
Point, spot, and area fixtures carry intensity, Kelvin, cone, position, and plan-export data.
A production handoff
Scene JSON can become floorplans, lighting plans, shot lists, recordings, and an Unreal Engine sequence.
System architecture
How the system moves
SetView keeps the cinematic rules in pure domain modules and puts device-specific WebXR behavior around them. That separation lets desktop prep, headset AR, exporters, tests, and the Unreal importer all agree on one scene model.
Physical room to production handoff
-
01 · Input
Hands, controllers, desktop
Raycasts, buttons, head pose, desktop forms, mic, and room features become typed commands.
-
02 · XR session
Hit tests, anchors, and scan
The browser establishes real-world placement and feature-detects the headset's granted capabilities.
-
03 · Domain
Scene, lens, timeline, history
Pure modules own actors, cameras, blocking, optics, lights, undo, and plan geometry.
-
04 · Runtime
Three.js scene systems
Actors, keyframes, camera view, depth of field, lights, room mesh, and playback render each frame.
-
05 · Persistence
Local save and scene JSON
Small state uses localStorage, scan geometry uses IndexedDB, and scenes remain portable.
-
06 · Output
Plans, takes, analysis, Unreal
The same scene becomes documents, recorded camera feeds, shot analysis, or a UE sequence.
Core AR needs no backend. The optional AI shot-analysis seam is an assistant around exported scene facts, not the source of the lens, blocking, or lighting model.
Keep exploring