Developer portfolio
SetView project icon

Find the frame in the real location

SetView

AR Previsualization Open Source

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

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.

Product principles

01

Optics that mean something

Filmback, focal length, T-stop, circle of confusion, and rack focus shape the virtual camera view.

02

Blocking with time

Actor marks preserve stance, scale, facing, position, and timing instead of acting like static furniture.

03

Light inside the location

Point, spot, and area fixtures carry intensity, Kelvin, cone, position, and plan-export data.

04

A production handoff

Scene JSON can become floorplans, lighting plans, shot lists, recordings, and an Unreal Engine sequence.

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

  1. 01 · Input

    Hands, controllers, desktop

    Raycasts, buttons, head pose, desktop forms, mic, and room features become typed commands.

  2. 02 · XR session

    Hit tests, anchors, and scan

    The browser establishes real-world placement and feature-detects the headset's granted capabilities.

  3. 03 · Domain

    Scene, lens, timeline, history

    Pure modules own actors, cameras, blocking, optics, lights, undo, and plan geometry.

  4. 04 · Runtime

    Three.js scene systems

    Actors, keyframes, camera view, depth of field, lights, room mesh, and playback render each frame.

  5. 05 · Persistence

    Local save and scene JSON

    Small state uses localStorage, scan geometry uses IndexedDB, and scenes remain portable.

  6. 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.

More systems