Set Planner
2D plan of the film set
USD 4.99
New: an Architecture section with auto Zone detection, hide-by-group toggles, working custom fonts, file metadata on export, and a fix for opening files by double-click.
Set Planner is a professional tool for film and TV set design. Build floor plans quickly, communicate your vision to the crew, and export to JPEG or PDF in seconds.
Cameras
Place cameras with customizable lens angle, focal length, and field of view. Name each camera and link a label that moves with it. Lock proportions or enable free resize per element.
Actors & Equipment
Add actors, monitors, keyboards, and custom library items to your plan. Choose which elements can be resized and which stay fixed — per object.
Rigs
Place JIB Crane, Dolly, Rails, and Drone rigs with labeled dimensions. JIB and Rail support height-only resize by default; width resize can be unlocked separately.
Architecture
Draw walls freehand and snap doors and windows directly onto them. Walls, doors, and windows maintain correct proportions when scaled.
Drawing Tools
Pen and Polyline for freehand and multi-point paths
Line and Arrow with optional arrowheads at start and end
Rectangle, Ellipse, Triangle, and Star with adjustable fill and stroke
Text labels anywhere on the canvas
Bezier Curve Editing
Enable Bezier handle levers for any smooth curve — Pen, Polyline, Line, or Arrow. Drag the green control handles on the canvas to shape each segment precisely. Handles move with the object, stay consistent when you add or remove knot points, and arrow heads align to the true curve tangent at the endpoint.
Precision Controls
Enter Width and Height numerically for geometric shapes
Adjust arrow head length (10–50 pt) per element
Set curve simplification distance before applying
Snap to grid with configurable grid size
Group, lock, and reorder elements freely
Export
Save your plan as a native .splan project file, export to JPEG for sharing, or generate a multi-page PDF ready for print.
Works on iPhone, iPad, and Mac.
more - **New: Architecture section** in the equipment list panel (Walls, Doors, Windows) — walls that fully enclose a space are automatically grouped into a single **Zone N** entry; everything else keeps its own row. Drag-reorder works here too — moving a Zone moves every wall in that room together.
- **New: per-section show/hide** — each equipment list section now has an eye icon that hides every item in that group on the canvas and in JPG export (without deleting them), and makes them unselectable until shown again.
- **New: Others section** — Keyboard+Mouse, Helicopter, Light Aircraft, Trusses, and every geometric shape are now listed, instead of being placeable but invisible in the panel. Tablet now appears under Monitors.
- **Equipment list panel:** sections reordered (Architecture, Cameras, Special, Monitors, Lights, Actors, Others), and the rig section (Jib/Dolly/Rail/Drone) renamed **Other** → **Special**, in both the panel and the PDF export.
- **Text tool:** the Font picker actually works now — 8 real bundled fonts replace the old OS font name list, which rarely did anything (and never on the web).
- **Import Image / Import SVG:** newly imported files now appear centered in the current view, instead of a fixed spot that could land off-screen.
- **Bottom toolbar:** the trash icon's short tap now deletes just the selected shape (or offers Clear all if nothing's selected); long-press always offers Clear all.
- **Save as JPG / Save as PDF:** exported files now carry "Set Planner" and setplanner.pro in their metadata.
- **Settings → Export → JPG Export:** new **Render Grid** switch to include reference grid lines in the exported file (off by default).
- **Fixed:** double-clicking a .spj file to open it no longer loads an empty canvas on macOS or Windows.
- **Settings → About:** added a short promo description, plus (web) a link to the App Store.
2.9.9 6 days ago
- **New: Help button in the top menu bar** — a question-mark icon next to Undo/Redo opens the online user guide (setplanner.pro/help) in one click.
- **New: Default sensor size** (Settings → General) — set the sensor width/height every new camera starts with for its field-of-view math, instead of the fixed 36×24 mm default. Each camera's own sensor size can still be changed individually afterward.
- **Light beams** now move together with their fixture in the layering order, instead of always rendering in a separate fixed pass — so a beam correctly sits above or below an imported image depending on where its fixture sits in the stack.
- **Web version:** Save JPG and Save PDF now show a short ad window before the file downloads.
- **Equipment list panel:** Actors, Monitors, Other (rigs), and Lights can now be reordered by dragging, the same way Cameras already could.
2.9.8 9 Oct
- **New: Auto select mode** (Settings → General, on by default) — after placing a camera, actor, rig, light, or shape, the app automatically switches back to Select so you don't accidentally place a second one. Turn it off to keep placing the same element repeatedly without reselecting the tool each time.
- **Circle / Ellipse:** the Sector angle control is now a numeric field (same width as Width/Height) instead of a slider — type an exact value, or scroll/drag it.
- **Rail rigs:** selecting a bent rail (Bend applied) now follows its actual curved shape, instead of the straight box it used to check against.
- Fixed the properties panel showing a generic "Office" label for lighting fixtures and other library items instead of their own name (e.g. "Fresnel", "Monitor").
- Dragging the equipment Kit info table (camera, monitor, rig, actor, light) now snaps to the grid, matching every other object.
- **Settings:** the **Credits** tab is now **About**, with a new **Help** link to the online user guide.
- New online user guide, in English and Ukrainian: **setplanner.pro/help**.
2.9.7 14 Sept
- **Live length tooltip** while drawing or editing a line, polyline, or wall (with "Use m² grid as ruler" on) — see the exact segment length right next to the cursor as you go.
- **Line/Arrow length is now editable** in the properties panel — type an exact value, or scroll/drag to resize.
- **Auto-scroll everywhere:** dragging any object, knot, or handle near the screen edge now pans the canvas, not just while drawing a line or wall.
- **Snap mode switch** now shows icons instead of text labels.
- **New: realistic light-beam visualization** for lighting fixtures — a collapsible, adjustable beam cone (angle, color, distance) that matches each fixture's actual shape, including softbox, PAR, FlexLight, and LED Tube.
- **New: Reflector, Diffuser, and Lighting Flag now interact with light.** A Reflector automatically bounces any beam that hits it — including a second bounce off another reflector. A Diffuser lets light continue through at half brightness. A Flag blocks it outright. Opacity fades realistically along the whole path, on the original beam and every bounce.
- The beam angle can no longer collapse to a visually broken, mathematically perfect 0° — every fixture now keeps a small minimum spread.
2.9.5 8 Sept
Colors
Custom color picker for fill/line — HSV wheel with a vertical hue bar, RGB/HSV toggle, fields supporting keyboard/scroll/drag input, history of the last 5 custom colors.
Opacity slider for fill color (almost all tools).
Files & saving
Overwrite confirmation in the "Save As" dialog + remembers the last save folder.
Custom document icon for .spj files (macOS, iOS).
On mobile, the keyboard no longer covers the save dialog.
Fixed Delete key that stopped working after clicking a checkbox/slider.
Snapping & grid
New snap mode Center / Edges + a quick toggle on the toolbar (disabled when snapping is off).
Group selections now snap as a single unit (no longer drift apart).
Grid step — fixed preset buttons (5/10/20/25/50/100 px) instead of a free slider.
Imperial units (feet/inches) as an alternative to meters.
Doors/windows snap to the grid and to each other along a wall.
Toolbars
The top and bottom toolbars now scroll horizontally on narrow screens (phone in portrait orientation).
Free Drawing moved next to Text; Line/Arrow pulled out of the Shapes menu into its own button.
Camera
New icon, shooting-angle sector (calculated from sensor/focal length, with an FOV-width field), collapsible "Accessories"/"Shooting Angle" sections, scrubbable fields.
Lighting (the biggest chunk of work)
New Lights library (2.8.0): Light Panel, Fresnel, Spotlight, PAR, Fluorescent, LED Tube, Flex Light + accessories (Reflector, Diffuser, Flag), Kit info tables, PDF export.
Redrawn Fresnel, Light Panel, Spotlight (SVG-accurate shapes), black barn doors/softbox tube, consistent Barn Doors/Soft Box/Snap Grid behavior.
Lighting Flag simplified to a plain rectangle.
New Trusses group (1m/2m/3m + corner connector) that snaps end-to-end.
Lines, curves, polylines
Fixed curve selection along the whole length (not just at knots).
Edit/Clone mode for polylines; long-press cloning for closed polygons.
Length label for Line/Arrow (draggable, with its own styling).
Bezier handle fixes (group rotation, Shift-constrained 45° angle snapping).
Line hit area increased to 16px (more finger-friendly).
Other
Rail: bend parameter (curves into an arc) + rotation handle moved to the side.
Monitor: precise hit-test instead of the full bounding box.
Drag-select now works even when starting over a locked object.
Leader line for info labels moved far from their item.
Auto Align for images with a detected grid (2.8.0).
Web: fixed the JPG export progress dialog that failed to close
2.9.1 31 Aug
#### Project File Format
- Projects are now saved with the `.spj` extension. Opening files with the legacy `.splan` extension remains supported.
#### Settings — View tab
- "Camera info on canvas" and "Monitor info on canvas" blocks moved from the Export tab to the View tab.
- Info table font size setting moved from the Export tab to the View tab.
#### Settings — General tab
- Grid and Cell size controls moved from the View tab to the General tab.
#### Camera Label
- Text added to a camera via double-click can now be deleted with the **Delete** button in the properties panel or the Del key — the camera number label itself remains protected.
#### Free Drawing
- Finishing a pen stroke no longer auto-selects the drawn line.
- When entering Free Drawing mode with Snap to Grid enabled, a large centred warning toast appears for 1.4 seconds.
#### Selection Hit-Testing
- **Free Draw** strokes are now selectable only by clicking directly on the line (within 8 px), not on the bounding box.
- **Polyline (open)**, **Line**, **Arrow**, and **Wall** follow the same rule — click the stroke, not the bounding box.
- **Ellipse**, **Triangle**, and **Star** are selected by clicking inside the actual shape body, not the bounding box.
- **Closed Polyline** is selected by clicking inside the enclosed polygon area.
#### Settings Persistence
- All settings (grid, paper size, DPI, camera/monitor info fields, font size, language, etc.) are now saved to disk and restored automatically on next launch.
#### Reset Settings
- Added **Reset Settings** button in Settings → General tab to restore all settings to their defaults.
#### Servo Drives (Camera)
- Added **Servo Drives** block to camera properties (after Shot Type): **Focus** and **Zoom** checkboxes, each with an optional Description field.
- **Focus** and **Zoom** can be toggled independently in Settings → Export to include them in the canvas Kit info table.
- Focus and Zoom appear as separate columns in the PDF camera export table only when enabled in Settings.
- Focus and Zoom are shown in the camera card in the left panel.
- PDF camera table restructured: fixed columns — №, Model, Lens, Zoom, Focus, VF, Headset, Tripod, Description. Wheels and Podium data are merged into the Description column (separated by ";").
2.7.1 17 Aug
#### Kit (Equipment List)
- Removed the global "Camera Kit" toggle from the top menu bar.
- Added a per-item **Kit** checkbox to the properties panel of: Camera, Monitor (library item), Jib, Dolly, Drone, and Actor.
- When **Kit** is enabled on a **Jib / Dolly / Drone**, a floating info table is drawn on the canvas showing the rig's **Model** and **Description**.
- When **Kit** is enabled on an **Actor**, a floating info table is drawn on the canvas showing the actor's **Name**, **Description**, and **Props**.
- Info tables for Jib/Dolly/Drone and Actor can be repositioned by dragging — the position is saved with the project.
- Renamed label "Camera Kit" → **Kit** (Ukrainian: **Комплект**) throughout the UI.
#### Properties Panel
- Reorganised the order of controls in all property panels (single item, Camera, Rig, Actor) to follow a consistent sequence:
Locked → Line thickness → Number → Opacity → Line color → Fill color → Screen color → Model → [tool-specific fields] → Wheels → Signal → Description → **Size / Length** → Rotation → Allow resize → Keep proportions → Layer → Delete.
- Size / dimension spin-fields now appear **below Description** and **above Rotation angle** in every panel.
#### Camera Numbering
- Hiding a camera's number (`Show Number` off) now triggers a full sequential renumber of all visible cameras.
- Re-enabling a camera's number assigns it the next available number after the current maximum — existing visible camera numbers are not disturbed.
- Switching between numeric and alphabetic numbering styles in Settings now immediately updates all camera labels on the canvas.
#### Rig Size Fields
- For **Jib** and **Rail** rigs the **Size** field controls the **width**; resizing scales proportionally from width.
- A separate **Length** field controls the height of Jib and Rail rigs independently.
#### PDF Export
- Column widths adjusted so the table fills the full page width: `#` wider (fits "Cam 99"), VF narrower (fits "Small"), Headset narrower (fits "Headset / Double"), Description expanded to fill remaining space.
- Camera number column now respects the numeric / alphabetic style setting.
- Hidden cameras (Show Number off) are excluded from the PDF camera list.
#### Export Settings — Monitors
- Default active fields for monitor info tables changed to **Model** and **Signal** (previously none were active).
#### Monitor Appearance
- Default screen colour for newly placed monitors is now **black**.
#### Monitor Numbering
- Monitors are auto-numbered sequentially when placed on the canvas.
- Deleting a monitor renumbers all remaining monitors sequentially starting from 1.
- Duplicating or pasting a monitor assigns the next available number, same as placing a new one.
#### Dimension Input Fields
- Removed the `px` suffix from all numeric dimension input fields across the properties panel.
- All dimension spin-fields use a consistent width of 80 px.
---
2.7.0 12 Aug
Bezier Curve Controls
Smoothed lines (Pen, Polyline) and multi-point Lines and Arrows now support Bezier handle editing. Enable "Bezier handles" in the Properties panel to show the control levers on the canvas and drag them to shape the curve precisely.
Bezier handles are displayed in green, matching the rotation handle color.
Adding or removing a knot point on a curve with active Bezier handles automatically recomputes the controls to keep the curve consistent.
Moving an object now moves its Bezier control points together with the shape.
Arrow heads on curved lines now point along the true Bezier tangent at the endpoint, not toward the adjacent knot.
Arrow Heads
Head length is now a user-defined parameter (10–50 pt) visible in Properties whenever a head is enabled.
Resize Control
Actors, Dolly, Monitor, Keyboard & Mouse: resizing is disabled by default and can be enabled via "Allow resize" in Properties.
JIB Crane and Rail Rig: "Allow resize" controls only the width handles; height handles remain available regardless.
Doors and Windows: "Allow resize" checkbox added; width-only resize for windows.
Geometric shapes (Rectangle, Ellipse, Triangle, Star): resizing is enabled by default; can be disabled per object. Width and Height can also be entered numerically with arrow spinners.
"Keep proportions" removed from Door properties (proportions are always locked for doors internally).
Star shape now correctly scales non-uniformly when proportions are unlocked.
Drawing Tools
Right-click or double-tap while placing a Camera, Actor, or any other element switches to Select mode. For Polyline and Wall, the current path is finished first.
"Simplify distance" is now a slider (10–100, default 32) shown in Properties above the Simplify button, so you can tune the tolerance before applying.
Project File
On iOS and Android, tapping Save for the first time now asks for a project name. The name appears in the title bar and is used as the filename in the share sheet. Subsequent saves reuse the name without prompting.
2.6.0 10 Aug
Wall tool — draw multi-segment walls by tapping points; double-tap or switch tool to finish. A closed wall is formed automatically when you tap near the starting point.
Door tool / Window tool — place doors and windows by tapping directly on a wall. Tapping away from a wall shows a hint message. After placement the tool stays active so you can continue placing elements.
Wall attachment — doors and windows snap to the nearest wall segment and follow it live while you drag or resize the wall. Deleting a wall automatically removes all doors and windows attached to it.
Door appearance — drawn as a rectangular gap in the wall with a hinge dot and a quarter-circle arc showing the swing direction.
Window appearance — drawn as a gap in the wall with three parallel lines (glass pane).
Flip Horizontal / Flip Vertical for doors — moves the hinge to the opposite end or swings the door to the other side of the wall. Flip always pivots around the hinge point.
Proportional resize — doors resize proportionally (square). Windows resize in length only; thickness is fixed.
Length handles only for windows — only the two endpoint handles are shown; no corner or thickness handles.
Scroll wheel in the Size / Width number field increments the value while the field has focus.
Stroke width sync — changing the line thickness of a wall automatically applies the same thickness to all attached doors and windows.
Default grid — snap grid 25 px, 1 m² reference grid enabled by default.
2.5.0 8 Aug
Monitors
Monitor info table (Model, Signal, Description) appears on canvas next to each monitor — same as camera tables
Tables are draggable
Monitor number is editable in Properties; new monitors auto-increment
Settings → Export now has a Monitors block to choose which fields to show
Settings
Reorganised into 4 tabs: General, Export, View, Credits
New PDF Export section with Cameras / Monitors / Actors / Other checkboxes — each enabled section generates a separate PDF page
Cameras checkbox is locked unless at least one other section is enabled
Export
PDF can contain multiple pages: cameras, monitors, actors, rigs (Jib/Dolly/Rail/Drone)
JPG and PDF save dialog pre-fills the current project name as the default filename
Cameras
Tripod enabled by default
Lens and Camera Model shown on canvas by default
Smartphones
App uses full screen height with no system UI insets
2.4.1 7 Aug
Monitors
Monitor info table (Model, Signal, Description) appears on canvas next to each monitor — same as camera tables
Tables are draggable
Monitor number is editable in Properties; new monitors auto-increment
Settings → Export now has a Monitors block to choose which fields to show
Settings
Reorganised into 4 tabs: General, Export, View, Credits
New PDF Export section with Cameras / Monitors / Actors / Other checkboxes — each enabled section generates a separate PDF page
Cameras checkbox is locked unless at least one other section is enabled
Export
PDF can contain multiple pages: cameras, monitors, actors, rigs (Jib/Dolly/Rail/Drone)
JPG and PDF save dialog pre-fills the current project name as the default filename
Cameras
Tripod enabled by default
Lens and Camera Model shown on canvas by default
Smartphones
App uses full screen height with no system UI insets
2.4.0 2 Aug
Left Panel (camera_list_panel.dart)
Complete redesign: replaced the single merged list with 4 collapsible sections: Cameras, Actors, Monitors, and Other (tracks).
Camera sorting: camera cards now support drag-and-drop reordering via a drag handle.
Animated transition: clicking a card initiates a smooth panning animation (easeInOut) to center the selected element on canvas.
Monitor cards are now numbered (Monitor 1, Monitor 2, etc.) and expand to show populated properties.
Track cards (JIB, Dolly, etc.) are also expandable, displaying their assigned model and description.
The app opens in pointer (select) mode by default.
Top Menu (top_menu_bar.dart)
New Document button: clears the canvas after user confirmation.
JPEG export progress bar: a non-dismissible 4-step modal dialog tracking rendering, pixel transfer, background isolate encoding via compute(), and file saving.
Properties Panel (properties_panel.dart)
Text: added a background fill color field (textBackground).
Monitor: added Model, Signal, and Description fields.
JIB / Dolly / Drone: added Model and Description fields, along with a line thickness slider.
All tracks: introduced a line thickness slider ranging from 1 to 20 px.
Data Models (models.dart)
RigData: added model and description properties.
LibraryItemData: added model, signal, description, and number properties (for monitor numbering).
DrawnItem: default strokeWidth decreased from 3 to 2; default fillColor changed from null to 0xFF455A64 (dark blue-grey).
Polylines now feature a closed property for enclosed shapes.
Rendering & Painting (drawing_painter.dart)
Closed polyline (closed = true): now correctly closes path points and fills as a solid polygon.
Enhanced Catmull-Rom splines: proper cyclic interpolation for smooth closed polylines.
Camera label font size is now customizable via infoFontSize.
Default Colors & Controller (editor_controller.dart)
JIB, Dolly, and Drone: default fill changed to 0xFF455A64 (previously grey/dark grey).
Monitor: default fill set to 0xFF455A64 with a blue screen display (Colors.blue).
Camera label: white fill color by default.
Added newDocument() method for complete scene state reset.
Added reorderCameras() method for handling camera list reordering.
Added animated camera focusing via targetOffsetForItem() and setOffset().
2.3.2 31 Jul
- **New: Architecture section** in the equipment list panel (Walls, Doors, Windows) — walls that fully enclose a space are automatically grouped into a single **Zone N** entry; everything else keeps its own row. Drag-reorder works here too — moving a Zone moves every wall in that room together.
- **New: per-section show/hide** — each equipment list section now has an eye icon that hides every item in that group on the canvas and in JPG export (without deleting them), and makes them unselectable until shown again.
- **New: Others section** — Keyboard+Mouse, Helicopter, Light Aircraft, Trusses, and every geometric shape are now listed, instead of being placeable but invisible in the panel. Tablet now appears under Monitors.
- **Equipment list panel:** sections reordered (Architecture, Cameras, Special, Monitors, Lights, Actors, Others), and the rig section (Jib/Dolly/Rail/Drone) renamed **Other** → **Special**, in both the panel and the PDF export.
- **Text tool:** the Font picker actually works now — 8 real bundled fonts replace the old OS font name list, which rarely did anything (and never on the web).
- **Import Image / Import SVG:** newly imported files now appear centered in the current view, instead of a fixed spot that could land off-screen.
- **Bottom toolbar:** the trash icon's short tap now deletes just the selected shape (or offers Clear all if nothing's selected); long-press always offers Clear all.
- **Save as JPG / Save as PDF:** exported files now carry "Set Planner" and setplanner.pro in their metadata.
- **Settings → Export → JPG Export:** new **Render Grid** switch to include reference grid lines in the exported file (off by default).
- **Fixed:** double-clicking a .spj file to open it no longer loads an empty canvas on macOS or Windows.
- **Settings → About:** added a short promo description, plus (web) a link to the App Store.
more Version 2.9.9 6 days ago
Data Not Collected The developer does not collect any data from this app.