Developer portfolio
Locked project icon

A camera operator inside a locked-off webcam

Locked

Virtual Camera In Development

A local Windows camera pipeline that tracks one subject, composes the frame with patience, fires cinematic moves through a restraint system, and presents the result to OBS as a virtual camera.

Runtime
Local Python pipeline for Windows 11
Vision
MediaPipe face detection, subject lock, and motion smoothing
Triggers
Hotkeys, offline voice phrases, claps, loud moments, lean, and Twitch
Output
OBS Virtual Camera, local clips, and a loopback control panel

What it does

Locked turns extra resolution around a streamer into camera movement. It finds and holds the chosen subject, calculates a composed crop, waits through a dead zone instead of chasing every twitch, then commits to a smooth recenter. Punch-ins, shakes, drifts, focus-like effects, and aspect changes are data-driven moves rather than edits burned into a scene.

Every trigger passes through a restraint layer that understands cooldowns, effects budget, the active look, panic state, and whether a latching move is being released. Audio and keyword recognition stay on the machine. The control panel listens only on loopback, clips remain local, and the program frame reaches streaming software through the OBS Virtual Camera driver.

Product principles

01

Patience is the motion model

Dead zones, sustained displacement, damping, and subject lock make the camera feel operated instead of reactive.

02

Triggers with taste

Voice, audio, hotkeys, lean, and viewer rewards request moves, but restraint decides whether they are allowed.

03

A real panic path

One command kills every effect and returns to a clean composed frame in a bounded transition.

04

Private by default

Vision, audio, clips, tuning, session counts, and the control panel all remain on the local machine.

How the system moves

The frame pipeline is split between perception, composition, movement, restraint, and output. Triggers never edit pixels directly. They request a move, the restraint layer arbitrates it, and one renderer combines the composed crop with the active look.

Webcam to virtual operator

  1. 01 · Capture

    Webcam, mic, hotkeys, Twitch

    Newest-frame capture and bounded event adapters collect visual and intentional input.

  2. 02 · Perception

    Detection and subject lock

    Reduced-cadence face detection, identity continuity, smoothing, and audio features describe the moment.

  3. 03 · Composition

    Good frame and motion

    Eye line, headroom, thirds, overscan, dead zones, and committed recenter define the camera window.

  4. 04 · Direction

    Triggers, moves, and restraint

    Requested moves pass through cooldown, look, effect-budget, latch, and panic rules.

  5. 05 · Render

    Crop, grade, and overlays

    The active window, cinematic move, look, and optional HUD become one program frame.

  6. 06 · Output

    OBS, clips, and local panel

    The virtual camera feeds the stream while local tools expose control, recap, and instant replay.

The restraint layer is the creative control point. A trigger may be detected correctly and still be refused because the current look, cooldown, effects budget, or panic lock says the shot should stay quiet.

More systems