Canvas & Drawing LED Layouts
Draw your LED installation on the canvas using Bezier curves and freehand paths, then configure LED count and fixtures.
Canvas & Drawing LED Layouts
The Canvas is where Filament becomes spatial. Instead of filling in spreadsheets of channel numbers, you draw your LED strips directly on a virtual representation of your stage or installation. Everything you put on the canvas maps to physical LEDs on your hardware.
[GRAPHIC: Wide screenshot of the canvas with multiple colored curves drawn over a stage reference photo, with the ghost LED dots visible along each curve. Shows what a real in-progress mapping looks like]
What the canvas represents
The canvas is a coordinate system that matches your Resolume composition size (typically 1920×1080 or 4K). Think of it as a top-down or front-facing view of your installation. Every point on the canvas corresponds to a point in your video output — which is exactly how Resolume maps LEDs: each LED gets a rectangle that specifies which part of the video frame to sample.
When you draw a curve and place LEDs along it, Filament automatically creates those sampling rectangles and distributes them evenly along the curve's path.
Navigating the canvas
Zoom and pan
| Action | Result |
|---|---|
Cmd/Ctrl + = or + | Zoom in |
Cmd/Ctrl + - | Zoom out |
Cmd/Ctrl + 0 | Fit entire canvas in view |
| Mouse wheel / two-finger scroll | Pan the canvas |
Trackpad pinch or Alt/Option + scroll | Zoom at cursor position |
H | Pan tool (click-drag to move) |
Space (hold) | Temporary pan from any tool |
Zoom range is 10% to 1000%. The canvas enforces a minimum visibility of ~30% of its area — you can't pan it completely off-screen.
Grid
Press G to toggle the grid on and off. The grid divides the canvas into equal sections (configurable: 1/8, 1/16, 1/32, or 1/64 of the canvas width/height). Enable Snap to Grid when you want precise alignment — movements will snap to the nearest grid intersection.
Major grid lines appear every 4 divisions; minor lines fill in between.
Background reference image
Uploading a photo of your stage or installation as a background image is one of the most useful things you can do before drawing. It lets you trace over the actual physical layout of your LED strips.
In the canvas toolbar, use the background image controls to:
- Upload an image (PNG, JPEG, WebP, GIF)
- Set opacity (0–100%) — turn it down so your curves stay visible
- Scale the image (10%–200%)
- Clear the background to start fresh
If you also want to see the Player's live backdrop graphics on the canvas, use the eye toggle in the canvas toolbar to enable or disable that overlay.
[GRAPHIC: Before/after comparison — left shows the canvas with just a grid, right shows the same canvas with a stage photo behind it at 40% opacity and curves traced over the LED strips. This image should sell the "reference photo" workflow immediately]
Drawing tools
Filament has two curve-drawing tools. Both create Bezier curves — smooth paths that can represent the exact arc of your LED strip, even around corners and over irregular surfaces.
The Bezier pen tool (P)
Use this when you want precise control over curve shape. It's the classic Illustrator/Pen tool approach:
- Press
Pto activate - Click to place an anchor point (straight connection to previous)
- Click and drag to place an anchor point with a curved handle — dragging sets the curvature
- Continue clicking/dragging to build the curve
- Press
Enteror double-click to finish
Hold Alt while dragging a handle to make the curve asymmetric (the two handles on that point move independently).
Press Escape at any time to cancel without creating a curve.
[GRAPHIC: Close-up screencast-style screenshot showing a few anchor points with handles visible, and the ghost LED dots starting to appear along the path. Should show the control handles clearly]
The freehand pen tool (B)
Use this when you want to draw naturally, as if sketching on paper. Just click and drag across the canvas — Filament records your stroke and automatically converts it into a smooth Bezier curve.
Choose a smoothing profile from the toolbar dropdown before drawing:
| Profile | Result | Best for |
|---|---|---|
| Light | More points, more detail | Complex curved strips, tight bends |
| Medium | Balanced (default) | Most situations |
| Heavy | Fewest points, smoothest | Long gentle arcs |
The smoothing algorithm uses multiple passes including a Douglas-Peucker simplification, so even a shaky hand produces a clean curve.
[GRAPHIC: Side-by-side showing a hand-drawn squiggle vs the resulting smooth Bezier curve after freehand mode processing it. Shows that even loose drawing produces clean results]
The LED configuration dialog
After you finish a curve (either tool), a dialog appears to configure how LEDs are distributed along it. This is where the physical and digital worlds connect.
[GRAPHIC: Screenshot of the LED configuration dialog, showing the LED count input, fixture dropdown, start channel field, and the info section showing LED spacing, total channels, and universes touched]
LED count
How many physical LEDs are on this strip? Enter the exact count. Filament spaces them evenly along the curve's arc length.
Fixture
Select the fixture definition that matches your LED type. This determines how many DMX channels each LED uses. If your fixture isn't in the list, go to the Library → Fixtures and add it first.
Start channel
The DMX channel where this strip begins. Filament tries to auto-select the first available channel in your project, but you can override it here.
The dialog shows you live feedback as you type:
- Curve length — the physical length of the curve in canvas pixels
- LED spacing — how many pixels apart each LED will be
- Total channels needed — LED count × channels per fixture
- Channel range — start channel through end channel
- Universes touched — which DMX universes (0, 1, 2…) this strip uses
Universe boundary splitting
DMX has 512 channels per universe. Long LED strips often cross universe boundaries. You have two options:
- Let it split naturally — the strip crosses the 512-channel boundary mid-strip (some controllers handle this fine)
- Avoid universe boundary split — check "Keep each LED inside one universe" and set a boundary shift value. Filament adds the shift as padding before the boundary, so no single LED's three channels (R, G, B) straddle two universes. This is the safe option for most hardware.
Ghost LED preview
As soon as you finish drawing and before you configure the curve, Filament shows small ghost circles along the curve showing where each LED will sit. These update in real time as you adjust the LED count in the dialog.
The ghost circles scale with the fixture's pixel dimensions — a 2×2 fixture creates bigger ghost circles than a 1×1.
The canvas layer structure
The canvas renders several overlapping layers (back to front):
- Background — your reference image (if loaded)
- Animation preview — live player output mapped to the canvas (if player is running)
- Grid — the alignment grid (if enabled)
- LED slices — your fixture placements, colored by live output or a default preview color
- Curve editing — anchor points and handles when a curve is selected
- Selection highlights — white outlines on selected slices
- Transform handles — move/scale/rotate handles (select tool)
- Marquee — the drag-selection rectangle
After creating curves
Once your curves are on the canvas, switch to the Output tab to route them to your hardware. The sidebar shows every Surface and its curves with their channel ranges - you can also edit start channels directly from the sidebar by double-clicking the channel number.
[GRAPHIC: Screenshot showing the sidebar expanded with one Surface open, displaying two curve items with their channel ranges, and one channel number being inline-edited. Shows how quick it is to adjust channels without leaving the canvas]