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
- Plug the camera in (or use the laptop's own).
- 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.
- 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.
- 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:
- What is live: a small live picture of the camera, its name, what the name means (FHD = Full HD (1920×1080) · USB webcam), the picture it sends (1280×720 · 30 fps) and where it is (ON THE SCENE, OFF THE SCENE · LIGHT ON, OFF).
- TAKE OFF THE SCENE / PUT ON THE SCENE (same as − / +) and TURN CAMERA OFF (the camera itself off, light off). When something is wrong: HOW TO FIX and TRY AGAIN instead.
- USE YOUR PHONE AS THE CAMERA · SCAN A QR CODE (beta): the big row right under these, with the phone icon, and in the camera list itself when no camera is found. A big QR code opens: scan it with your phone's camera, then press ALLOW on the computer. Same Wi-Fi, nothing to install. Steps in
PHONE_CAMERA.md. - CAMERAS: every camera the computer knows, as a big row with its plain name; the live one has the ✓. Click one and the scene shows it, right away, whatever was showing before. Between two live cameras the last picture holds until the new camera's first one, no flash of the demo clip.
- VIRTUAL = software that pretends to be a camera: OBS Virtual Camera, NDI Webcam Input, SpoutCam, NVIDIA Broadcast, XSplit, Snap Camera, ManyCam, Insta360 Virtual Camera… They only send a picture while their own app runs, and the panel says which app.
- PHONE = your phone as the camera (a phone plugged in as a webcam, or a phone-camera app). Keep the phone's screen on and its charger in.
- ~95 ms = how late that camera's picture arrived the last time you measured it (MEASURE DELAY, below).
- BUILT-IN = the laptop's own camera. CAPTURE = a capture device (Cam Link, HDMI capture).
- No searching: plug a camera in and it appears by itself within a second, marked NEW, with a CAMERA PLUGGED IN message; pull one out and it goes. ⟳ looks again by hand.
- Pull out the camera you are using and the button reads LOST (the demo clip takes over). Plug it back in and it comes back by itself, on the scene if it was on the scene.
- VIDEO FILE and DEMO CLIP: a clip of yours, looped, or the built-in one. The ✓ shows which is live.
- MORE SETTINGS (fold it open at the bottom of the box) holds the rest:
- MEASURE DELAY (or RE-TEST DELAY) with the last result for this camera: how late its picture arrives. See How laggy is my camera? below.
- RESOLUTION: AUTO / 720p / 1080p. What the camera is asked for. The scenes always get at most 1280×720, so AUTO (720p) is right for almost every camera. Pick 1080p only for a camera that crops its picture or looks soft at 720p. A choice the camera cannot do is greyed out.
- PICTURE: MIRROR flips left/right (on when you perform facing the camera and want your right hand on the right of the projection). FIT · FILL fills the output and crops the camera's edges (default); FIT · WHOLE FRAME keeps all of it with black bars.
- CAMERA OFF SHOWS: what camera OUT (− or V) leaves in the scene: BLACK, or BARS (colour bars with a moving disc, handy while you line up a projector). The DEMO CLIP plays only until you use a real camera or take it off (− on the demo clip); after that camera OUT lands on black, also after a restart. ⧉ INPUT → DEMO CLIP brings it back.
- ANONYMOUS MODE: OFF / ON. Lots of people get self-conscious seeing themselves: great for crowds and stages. ON puts every camera picture through a style (EDGES first, then THERMAL, ASCII and HALFTONE, the last two on your body only, black around you); ◀ ▶ next to it pick the style. The effects that follow you still see the plain camera, so they keep working. The pad: double-tap + turns it on or off; while it is on, a single tap of + steps to the next style. An ANON badge shows on your laptop screen (never on the projector) while it is on, and Plugin Player remembers it for the next launch. It starts OFF.
- WHAT THE EFFECT LAYER SEES AS YOU and LEARN BACKGROUND: below.
- SOMETHING BLOCKED? opens the helper card.
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.
- In Arena: Output › Advanced… → pick a screen → Device: Spout (or turn on Spout under Output › Composition output sharing).
- ⧉ INPUT › SPOUT › click Arena's sender. It is on the scene (ON SCENE).
- − / +, CAMERA OFF SHOWS, MIRROR, FIT and REC work exactly as with a camera. RESOLUTION is hidden (the sender decides its own size).
- It is remembered by name, with the same rule as a camera: not sending at launch = your camera, with a note.
- 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.
- ⧉ INPUT → MEASURE DELAY (or SHOW CHECKLIST → CAMERA DELAY → MEASURE DELAY).
- 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.
- 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.
- START, keep still. Esc (or a click on the flash) stops it.
You get one big number and a verdict:
| Result | Verdict | What it means on stage |
|---|---|---|
| under 120 ms | GREAT | feels instant: the effects stay on the dancers |
| 120–200 ms | GOOD | a touch behind; hard to notice |
| 200–350 ms | OK | fast moves trail a little |
| over 350 ms | LAGGY | the 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:
- The camera did not see the flashes: point it at the screen, closer, so the screen fills most of the picture; turn off auto-exposure in the camera app if it has one; turn DIM FLASH off.
- The camera is off: turn it on first (⧉ INPUT → TURN CAMERA ON).
- Too dark / too bright: open the lens cover; or turn the room lights or the camera's exposure down.
- The camera stopped sending pictures: the phone app closed or the Wi-Fi dropped. Fix it, then RE-TEST.
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 + phone | Route | Steps | Notes |
|---|---|---|---|
| Any computer + Android, cable | USB "Webcam" mode (Android 14+, Pixel confirmed) | Plug in with a data cable → tap the USB notification → Webcam → ⧉ INPUT → Android Webcam | No app, no network, charges the phone. Samsung and Motorola are reported to leave it off: look for "Webcam" in the USB options |
| Windows 11 + Android | Link 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 it | Android 10+. May read Windows Virtual Camera. Not tested with no internet yet |
| Mac + iPhone | Continuity 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 iPhone | The iPhone can't be sharing its Personal Hotspot at the same time. Not tested in Plugin Player on a Mac yet |
| You already use NDI | NDI Webcam Input (free, Windows) | Your NDI source → NDI Tools → Webcam Input → ⧉ INPUT → NDI | The delay can wander |
| You run Resolume | Phone into Resolume → Resolume's Spout output → ⧉ INPUT › SPOUT | A Resolume rig feeding the app over Spout |
Then, every time:
- Pick the phone in ⧉ INPUT if it is not on the scene already. Plugin Player says PHONE CAMERA FOUND · USE IT? when a cable phone appears. Then press MEASURE DELAY.
- At a show, use a cable if you can. It charges the phone, and a crowd full of phones can't jam it.
- Otherwise use the filming phone's own hotspot, on 5 GHz.
- Turn auto-lock off, plug in a power bank, and use airplane mode + Wi-Fi so a call can't take the camera.
- The effects use 720p at most.
- A phone that drops mid-show: the last picture holds for 3 seconds, so a hiccup never shows the demo clip. After that the chip reads NO PICTURE, the demo clip plays, and it comes back by itself. A pulled USB webcam-mode cable reads LOST and comes back the same way.
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:
- Click LEARN BACKGROUND (or, on the controller, switch to the FX channel and hold L for 1 second).
- A 3 · 2 · 1 STEP OUT OF FRAME countdown shows on the monitor. Step out.
- 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.
| Chip | Meaning | Do |
|---|---|---|
| the camera's name, lit orange | the live camera is the scenes' picture | nothing: that is the goal |
| DEMO CLIP (or BLACK / BARS), the dot a ring | the 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 off | the camera itself is off | +, V or ⧉ INPUT turns it on |
| STARTING… (under INPUT) | asking the computer for the camera | wait a second |
| CAMERA IS BLACK | the camera is open but sends black frames | privacy shutter, lens cap, or the laptop's camera kill key (F-row key with a camera icon) |
| NO CAMERA | the computer lists no camera | plug it in. Windows: Device Manager → Cameras should show it |
| NO PICTURE | the camera stopped sending: a phone app closed or asleep, Wi-Fi dropped. The last picture held for 3 seconds first | fix the phone or the Wi-Fi: it comes back by itself. Or pick another in ▾ |
| BLOCKED | camera privacy is off, permission was not allowed, or another app owns the camera | next section |
| DENIED | the permission was refused | Windows: restart Plugin Player; it asks again. Mac: use the privacy steps below |
| LOST | the 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:
- Camera access — the whole machine. Off = every app sees no camera.
- 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
- Shutter, lens cap, camera kill key.
- Another app has the camera (Teams, Zoom, OBS, the Windows Camera app). Close it, then V twice.
- You picked a virtual camera whose app is closed. Pick the real one in ▾.
- The camera is on a starved USB hub. Plug it straight into the laptop.
- 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.