‹ Plugin Player docs

Camera — turn it on and boom

Scenes that use a picture (Goop (fluid dynamics), Custom Particles, Blob Tracking, Frame Stack, Cube Bloom's Live Input) play on the demo clip until you give them a camera: someone waving at a webcam, on a loop, so you see what the scenes do with a person in front of them. Then the picture driving them is you.

Turn it on

  1. Plug the camera in (or use the laptop's own).
  2. Click ⧉ INPUT in the header, right before ⧉ OUTPUT, then click your camera. That is it: two clicks, and it is on the scene. The camera light comes on.
    • Windows: no prompt; Plugin Player grants itself the camera, nothing else.
    • Mac: if macOS asks for camera permission, click Allow. If you previously refused it or the camera is blocked, open System Settings → Privacy & Security → Camera, turn Plugin Player on, and reopen Plugin Player if macOS asks. Then click your camera in ⧉ INPUT again.
  3. The button lights up orange with your camera's name under INPUT (FHD WEBCAM). V or the small dot on the button does the same for the camera you used last. The monitor reads INPUT: FHD WEBCAM ▾ with CAMERA lit. That is the live picture driving the scene.

What is "FHD"? It is part of the name Windows gives the camera: FHD = Full HD (1920×1080). Windows also adds the camera's USB id, like (2b7e:c906); Plugin Player hides that. The box explains each name in plain words.

  1. V again takes it off the scene (the camera stays on; ⧉ INPUT → TURN CAMERA OFF turns it off). Plugin Player remembers the choice, the device, mirror and fit for the next launch.

The input control at the top of the monitor is always there, on every scene: INPUT: <what is live> ▾ (click it for the ⧉ INPUT panel) and CAMERA · SPOUT · VIDEO FILE · DEMO with the live one lit (SYPHON on a Mac; no SPOUT button where this window cannot receive it). One press changes the picture: a camera or sender it picks lands on the scene, and DEMO takes the demo video back (a running camera stays warm, so CAMERA returns at once). It works in GUEST MODE too. It never shows on the projector, Spout / Syphon or a recording.

On the controller: + = the camera to the scene, − = the camera off the scene. Each one fades the picture inside the scene in half a second; the scene itself keeps playing (Cube Bloom's cubes keep turning while your camera fades onto or off their faces). Camera OUT leaves the scene on the demo clip by default (or black / the test pattern: CAMERA OFF SHOWS below).

− does not turn your camera off. The camera keeps running (its light stays on) and Plugin Player keeps reading it, it just is not shown. That is why + brings it back at once, with no lag and no glitch, whatever camera you plugged in. The ⧉ INPUT reads OFF SCENE · CLIP meanwhile (or · BLACK / · BARS). To really turn the camera off (light off, so Zoom or Teams can use it): ⧉ INPUT → TURN CAMERA OFF. Plugin Player also lets go of it by itself after 10 minutes off the scene.

With two displays the camera runs in the output window; ⧉ INPUT in the operator window still turns it on and off.

The INPUT box (click ⧉ INPUT)

Only one of INPUT, OUTPUT and STORE is open at a time. If the camera opens but sends black, the box says CAMERA IS BLACK · check the lens cover or camera key, and the button says CAMERA IS BLACK until the picture comes back.

From the top:

Plugin Player remembers your camera (and mirror, fit, resolution). If it is not plugged in at the next launch, Plugin Player uses the first camera it finds and says so: YOUR CAMERA "C920" IS NOT PLUGGED IN · USING FHD WEBCAM. It still remembers yours: plug it in and pick it (it is marked YOURS · PICK). It never switches by itself mid-show.

Command line: --camera starts with the camera on. --camera-device c920 picks a camera by any part of its name.

Use Resolume (or any Spout app) as the input picture

⧉ INPUT has a SPOUT section under the cameras: every Spout sender on this computer (Resolume Arena, TouchDesigner, OBS with a Spout plugin…), tagged SPOUT, with its size and frame rate. Pick one and its picture is the camera for every scene. Spout is built into Plugin Player: no Python, nothing to install.

  1. In Arena: Output › Advanced… → pick a screen → Device: Spout (or turn on Spout under Output › Composition output sharing).
  2. ⧉ INPUT › SPOUT › click Arena's sender. It is on the scene (ON SCENE).
  3. − / +, CAMERA OFF SHOWS, MIRROR, FIT and REC work exactly as with a camera. RESOLUTION is hidden (the sender decides its own size).
  4. It is remembered by name, with the same rule as a camera: not sending at launch = your camera, with a note.
  5. Arena stops sending: LOST, the demo clip plays, the sender waits in the list (GONE · WAITING) and comes back by itself.

On a Mac this section is SYPHON (the Mac's Spout): Arena's composition shows up as Arena - Composition once Arena's Output › Composition output sharing → Texture sharing (Syphon) is on, and any Syphon app (VDMX, TouchDesigner, MadMapper…) appears the same way. Everything below works the same. Camera blocked on a Mac: CONTROLS › HELP › MAC BLOCKING SOMETHING? › The camera is blocked → OPEN CAMERA SETTINGS (System Settings › Privacy & Security › Camera: turn Plugin Player on).

Plugin Player's own Spout output is never listed. If Arena's composition contains Plugin Player itself, the panel says FEEDBACK LOOP: allowed, it is a feedback effect. On a Spout input, MEASURE DELAY measures the whole round trip (the flash goes out over Spout and back). More in OUTPUT.md §4.

How laggy is my camera? (MEASURE DELAY)

Every camera shows you a little late. A USB webcam is usually 60–100 ms behind; a phone over a Wi-Fi app can be half a second or more. On stage that is the gap between a dancer's move and the fluid following it. Measure it before the show, not during.

  1. ⧉ INPUT → MEASURE DELAY (or SHOW CHECKLIST → CAMERA DELAY → MEASURE DELAY).
  2. Read the warning: this is a flashing light test. The screen flashes white 8 times in about 9 seconds, never more than 2 flashes a second. Skip it if flashing light affects you or anyone who can see the screen. DIM FLASH uses 50 % grey instead of white.
  3. Point the camera at the screen, close, so the screen fills most of its picture. FLASH ON: THIS SCREEN flashes the laptop. PROJECTOR (only with the output on a second display, and only when you pick it) flashes the projector instead; point the camera at the wall. The audience will see it.
  4. START, keep still. Esc (or a click on the flash) stops it.

You get one big number and a verdict:

ResultVerdictWhat it means on stage
under 120 msGREATfeels instant: the effects stay on the dancers
120–200 msGOODa touch behind; hard to notice
200–350 msOKfast moves trail a little
over 350 msLAGGYthe fluid will trail behind dancers

The number is camera + its connection (USB cable or Wi-Fi app) + Plugin Player, plus a little of the screen's own delay (one or two refreshes). It is the median of the flashes the camera saw; the small print says how many it saw (e.g. 8 of 8) and how much they varied. The time a camera spends waiting for its next frame is taken out, so a 30 fps camera is not charged for it.

It is saved per camera: ⧉ INPUT shows ~95 ms next to every camera you measured, and the checklist's CAMERA DELAY row shows the one in use. It changes with the light and the connection, so measure again where you will play: a phone on a crowded Wi-Fi can be much slower at the venue than at home.

If it can't measure:

GUEST MODE blocks the test (a full-screen flash in the middle of a show is never a guest's call).

Use your phone

The quickest way: ⧉ INPUT → USE YOUR PHONE AS THE CAMERA · SCAN A QR CODE. A big QR code opens. Scan it with your phone's camera, then press ALLOW on the computer. Same Wi-Fi, nothing to install, Windows and Mac alike. The steps, the firewall question and what to do if nothing happens: PHONE_CAMERA.md.

With a cable, or in a build without the QR, these need no app on the computer:

Computer + phoneRouteStepsNotes
Any computer + Android, cableUSB "Webcam" mode (Android 14+, Pixel confirmed)Plug in with a data cable → tap the USB notification → Webcam → ⧉ INPUT → Android WebcamNo app, no network, charges the phone. Samsung and Motorola are reported to leave it off: look for "Webcam" in the USB options
Windows 11 + AndroidLink to Windows: "Use as connected camera" (free, nothing to install on the PC)1. On the phone, install Link to Windows and pair it, with the same Microsoft account: Windows Settings › Bluetooth & devices › Mobile devices. 2. On that page, turn on Allow this PC to access your mobile devices, pick the phone, turn on Use as connected camera. 3. Unlock the phone and keep it awake. 4. ⧉ INPUT → pick itAndroid 10+. May read Windows Virtual Camera. Not tested with no internet yet
Mac + iPhoneContinuity Camera (built in)1. iPhone XR or later on iOS 16+, Mac on macOS 13+, same Apple Account. 2. Wi-Fi + Bluetooth on, both close together. 3. Mount the iPhone locked, in landscape, rear camera toward you. 4. ⧉ INPUT → pick the iPhoneThe iPhone can't be sharing its Personal Hotspot at the same time. Not tested in Plugin Player on a Mac yet
You already use NDINDI Webcam Input (free, Windows)Your NDI source → NDI Tools → Webcam Input → ⧉ INPUT → NDIThe delay can wander
You run ResolumePhone into Resolume → Resolume's Spout output → ⧉ INPUT › SPOUTA Resolume rig feeding the app over Spout

Then, every time:

LEARN BACKGROUND (the Effect Layer's fluid barely shows)

The Effect Layer's fluid is born on you: it compares the camera picture with the empty room it learned, and whatever differs is you. It learns the room when the layer first turns on. If you were in frame at that moment (holding the controller in front of the camera, say), you became part of "the room", and the fluid barely appears.

The small grey picture next to LEARN BACKGROUND (in the camera panel and in the EFFECT LAYER card) shows what the layer sees as you: white = you. If you are not white in it:

  1. Click LEARN BACKGROUND (or, on the controller, switch to the FX channel and hold L for 1 second).
  2. A 3 · 2 · 1 STEP OUT OF FRAME countdown shows on the monitor. Step out.
  3. LEARNING THE ROOM, then BACKGROUND LEARNED · STEP BACK IN. The layer fades back in over about a second.

Click the countdown to cancel it. It is never automatic: only you know whether you were in the picture.

What the chip says when it is not working

The demo clip keeps playing under every amber or red state; the output never goes black because of the camera.

ChipMeaningDo
the camera's name, lit orangethe live camera is the scenes' picturenothing: that is the goal
DEMO CLIP (or BLACK / BARS), the dot a ringthe camera is on (light on) but the scenes show the demo clip / black / bars+, V or the dot: back at once
DEMO CLIP, the dot offthe camera itself is off+, V or ⧉ INPUT turns it on
STARTING… (under INPUT)asking the computer for the camerawait a second
CAMERA IS BLACKthe camera is open but sends black framesprivacy shutter, lens cap, or the laptop's camera kill key (F-row key with a camera icon)
NO CAMERAthe computer lists no cameraplug it in. Windows: Device Manager → Cameras should show it
NO PICTUREthe camera stopped sending: a phone app closed or asleep, Wi-Fi dropped. The last picture held for 3 seconds firstfix the phone or the Wi-Fi: it comes back by itself. Or pick another in ▾
BLOCKEDcamera privacy is off, permission was not allowed, or another app owns the cameranext section
DENIEDthe permission was refusedWindows: restart Plugin Player; it asks again. Mac: use the privacy steps below
LOSTthe camera vanished mid-show (unplugged, or privacy switched off)plug it back in: it comes back by itself. Or pick another in ▾

Click a red chip: a SOMETHING BLOCKED? card shows the steps for that case, with OPEN CAMERA SETTINGS and TRY AGAIN buttons. It also opens by itself when the computer blocks the camera. All the steps: SECURITY_PROMPTS.md. Hover the chip for the exact operating-system message. The log line is webcam: <STATE> — OS said "<name>: <message>".

The Mac camera permission

System Settings → Privacy & Security → Camera. Turn Plugin Player on. If macOS asks you to reopen the app, quit and open Plugin Player again, then choose the camera in ⧉ INPUT. You can also open CONTROLS › HELP › MAC BLOCKING SOMETHING? › The camera is blocked → OPEN CAMERA SETTINGS.

If the permission was refused earlier, changing this switch is the fix; Plugin Player cannot turn on a macOS privacy permission for you. Close other apps that are using the camera, then click TRY AGAIN if the helper card is open.

The Windows camera privacy toggle

Settings → Privacy & security → Camera. Two switches matter:

  1. Camera access — the whole machine. Off = every app sees no camera.
  2. Let desktop apps access your camera — Plugin Player is a desktop app. It is not in the per-app list above this switch, and that is normal. This switch must be On.

When either is off the button reads BLOCKED and the log says NotAllowedError: Permission denied by system or NotReadableError: Could not start video source. Flip the switch, then press V twice (off, on). No restart needed.

Black feed, quick fixes

  1. Shutter, lens cap, camera kill key.
  2. Another app has the camera (Teams, Zoom, OBS, the Windows Camera app). Close it, then V twice.
  3. You picked a virtual camera whose app is closed. Pick the real one in ▾.
  4. The camera is on a starved USB hub. Plug it straight into the laptop.
  5. Unplug, replug (it shows up in ▾ by itself), pick it.

What it costs

The camera picture is scaled into a feed no larger than 1280×720 before any scene sees it, whatever the camera delivers. A 4K camera costs the same as a 720p one. On the test laptop Goop (fluid dynamics) ran at the same frame rate on the camera as on the pattern.