Vision node
Camera Input
Universal multi-camera capture. One node = one camera; add several nodes for several cameras. Discovers built-in, USB/UVC and Continuity (iPhone) cameras with per-node resolution, frame rate, and (where the device supports it) focus, exposure and white balance. Outputs the live frame as an image. All processing is on-device — nothing leaves your Mac.
Inputs
| Port | Type | Default |
|---|---|---|
| EnableOff stops the capture session and hands the camera back to the system. | bool | true |
| DeviceWhich camera this node owns. Changing it adopts the camera now at that position; afterwards the camera is remembered by identity, so a reordering list cannot swap it and an unplugged one is simply waited for. | int | 0 |
| Resolution0 uses the camera's default format; higher values pick from the formats that camera actually supports. An index past the list keeps the default. | int | 0 |
| FPS0 is Auto — the camera decides. Any other value must be a frame rate the chosen camera supports, otherwise it is ignored. | int | 0 |
| FocusAuto keeps refocusing, Locked freezes focus where it is. Only shown for cameras that allow it; anything other than Locked means Auto. | int | 0 |
| ExposureAuto keeps adapting to light, Locked freezes brightness so the image stops pumping. Anything other than Locked means Auto. | int | 0 |
| White BalanceAuto keeps chasing the light's color, Locked freezes it so the tint stops drifting mid-show. Anything other than Locked means Auto. | int | 0 |
| XHorizontal position of the video, center is 0. Not clamped; roughly ±1 is the viewport edge, further pushes it out of frame. | float | 0 |
| YVertical position of the video, center is 0. Not clamped; roughly ±1 is the viewport edge, further pushes it out of frame. | float | 0 |
| ScaleSize of the video. 1 fits it to the viewport; not clamped, 0 collapses it and negative values flip it on both axes. | float | 1.0 |
| RotationTurns the video clockwise in degrees. Any value works; it just keeps spinning past 360. | float | 0 |
| MirrorFlips the image horizontally. On by default, which is the selfie-view most people expect of a front camera. | bool | true |
| OpacityFades the video over whatever is behind it. Not clamped, but stay within 0…1 — higher values only distort the blend. | float | 1.0 |
| DeinterlaceInterlaced video (a capture card on 1080i) shows a comb of stripes on motion. Auto removes it whenever the frames say they are interlaced (Adaptive, every field) and leaves other cameras alone. Manual always deinterlaces, with the Method, Field Order and Rate below. Off shows the frames as they come. | int | 1 |
| MethodAdaptive: full detail where the picture stands still, lines rebuilt along edges where it moves. Adaptive (Best): the same, also looking one frame ahead (one frame of delay). Bob: every field on its own. Blend: the lines softened together, a ghost on motion. | int | 0 |
| Field OrderWhich field was taken first. Auto: what the frames say, otherwise top first (HD, 576i) or bottom first (480i / 486i). If motion looks jerky, back and forth, choose the other order. | int | 0 |
| RateEvery Field: one picture per field — 50 a second from 1080i50, the motion the camera saw. Every Frame: one picture per frame (25), from its first field. | int | 0 |
Outputs
| Port | Type |
|---|---|
| Image | image |
| Width | float |
| Height | float |
| Is Active | bool |
| Device Name | string |
| Resolution0 uses the camera's default format; higher values pick from the formats that camera actually supports. An index past the list keeps the default. | string |
| FPS0 is Auto — the camera decides. Any other value must be a frame rate the chosen camera supports, otherwise it is ignored. | float |
| Interlaced | bool |
The Basics
The Camera Input node is your bridge from the physical world into Grafit. It turns a live camera feed into an image signal — the same kind of image that shapes, text and other generators produce — so you can composite it, analyze it, or track people in it.
The golden rule is one node = one camera. Want to mix two webcams? Add two Camera Input nodes. Each node independently owns its camera, its settings, and its live frame.
Everything happens entirely on your Mac. Frames are never uploaded, recorded, or sent anywhere — Grafit just reads them, shows them, and (if you want) analyzes them in memory.
How It Works
Under the hood the node opens the chosen camera with Apple's AVFoundation, receives each frame as it arrives, and hands it straight to the GPU as a texture — with no copying (a technique called zero-copy). That is why a 1080p camera can run at 60 fps without slowing the graph.
The dropdowns are honest: Resolution and Frame Rate only list values the selected camera genuinely supports, and the Focus / Exposure / White Balance controls only appear for cameras that actually expose them. Most Mac cameras — the built-in FaceTime camera and iPhone Continuity Camera included — don't allow manual control, so those rows are simply hidden rather than shown as buttons that do nothing.
Parameters
| Parameter | What it does |
|---|---|
| Device | Which camera to use. A camera already claimed by another node is greyed out. |
| Resolution | Capture size (e.g. 1920×1080). Higher = more detail, more GPU work. |
| Frame Rate | Frames per second, or Auto. Lists the camera's real supported rates. |
| Focus / Exposure / White Balance | Manual image controls — shown only when the camera supports them. |
The outputs are Image (the live texture) plus Width and Height in pixels.
Examples
- Show your webcam on screen — Camera Input → Canvas. That's it: the feed appears in the output viewport.
- Track yourself — Camera Input → Vision Tracking (turn on Body or Hands) → a Skeleton node → Canvas. Now a glowing skeleton follows your movements.
- Two-camera mix — Two Camera Input nodes → two Canvas layers with different opacities for a ghostly double exposure.
- Picture-in-picture — Camera Input → Joint Crop to zoom into a hand, composited in a corner.
Tips
- If the feed is dark or laggy, lower the Resolution or set Frame Rate to a value your camera comfortably supports.
- The first time you enable a camera, macOS asks for permission — this is normal and required.
- No manual focus/exposure on your Mac camera is expected, not a bug — Apple doesn't expose those controls for most built-in and Continuity cameras.
Open Camera Input in the interactive catalog →
Camera Input is one of 381 nodes in Grafit Pro.
Free download. Every feature for 7 days, no card. Then €99.99 once — or keep playing your projects as a Player.