{"id":53,"date":"2026-02-12T01:32:20","date_gmt":"2026-02-12T01:32:20","guid":{"rendered":"https:\/\/securitywholesalers.com.au\/tools\/?page_id=53"},"modified":"2026-04-29T02:20:03","modified_gmt":"2026-04-29T02:20:03","slug":"camera-planner","status":"publish","type":"page","link":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/","title":{"rendered":"CCTV Camera Planner &amp; Designer"},"content":{"rendered":"\n<p>The Free Camera Placement Planner &amp; Designer lets you upload a floorplan and quickly design a CCTV layout by placing cameras directly on the plan. You can adjust lens field-of-view, coverage distance, camera display size, and optional DORI distance rings, then export a clean PNG for quotes, proposals, or installer notes. It\u2019s built to be simple enough for customers to use, but detailed enough to help you plan realistic coverage before you buy or install hardware.<\/p>\n\n\n\n\n        <div id=\"cp_planner_app\" class=\"cp_tool_wrap\">\n            <div class=\"cp_content_block cp_content_block_intro\">\n                <p class=\"cp_content_eyebrow\">Interactive CCTV Planning Tool<\/p>\n                <h2 class=\"cp_content_title\">Design camera layouts on floorplans or live satellite imagery<\/h2>\n                <p class=\"cp_content_lead\">\n                    The Security Wholesalers Camera Placement Planner helps you map out CCTV coverage before you buy or install.\n                    You can test camera positions, compare models and lenses, visualise identification, recognition, and detection\n                    coverage, add NVRs and supporting equipment, and export a practical bill of materials for quoting or internal planning.\n                <\/p>\n\n                <div class=\"cp_content_grid\">\n                    <div class=\"cp_content_card\">\n                        <h3>What this planner does<\/h3>\n                        <p>\n                            Build a visual CCTV design using either a scaled floorplan or Google satellite view. Place cameras,\n                            adjust fields of view, check DORI coverage, add NVRs and network equipment, and produce a cleaner plan\n                            before installation starts.\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"cp_content_card\">\n                        <h3>What it is used for<\/h3>\n                        <p>\n                            This tool is ideal for home security layouts, commercial offices, warehouses, retail stores, workshops,\n                            driveways, perimeter protection, and early-stage cabling or recorder planning.\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"cp_content_card\">\n                        <h3>Why it helps<\/h3>\n                        <p>\n                            Instead of guessing, you can see likely coverage on-screen, compare camera options, estimate cable and\n                            recorder requirements, and build a faster, more accurate shortlist of products for the job.\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"cp_shell\">\n                <div class=\"cp_header\">\n                    <div class=\"cp_header_copy\">\n                        <p class=\"cp_eyebrow\">Security Design Studio<\/p>\n                        <h2>Camera Placement Planner<\/h2>\n                        <p class=\"cp_intro\">\n                            Build polished surveillance plans with floorplan fitting, DORI rings, snap-to-grid layout,\n                            camera styling, project restore, and production-ready PNG exports.\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"cp_surface_intro\">\n                    <strong>Step 1: Choose Planner Mode<\/strong>\n                    <p>\n                        <strong>Floorplan Mode<\/strong> is for uploaded plans and scaled drawings.\n                        <strong>Satellite Mode<\/strong> is for marking cameras onto live Google Maps satellite imagery.\n                    <\/p>\n                <\/div>\n\n                <div class=\"cp_surface_bar\">\n                    <div class=\"cp_surface_tabs\" role=\"tablist\" aria-label=\"Planner surface\">\n                        <button type=\"button\" id=\"cpSurfaceFloorplan\" class=\"cp_surface_tab\" role=\"tab\" aria-selected=\"true\">Floorplan Mode<\/button>\n                        <button type=\"button\" id=\"cpSurfaceGoogleMaps\" class=\"cp_surface_tab\" role=\"tab\" aria-selected=\"false\">Satellite Mode<\/button>\n                    <\/div>\n\n                    <div id=\"cpGoogleMapsControls\" class=\"cp_surface_map_controls\" hidden>\n                        <div class=\"cp_surface_map_header\">\n                            <strong>Step 2: Load Satellite Address<\/strong>\n                            <span class=\"cp_hint\">Enter an address, choose the map type, then place cameras directly onto the live satellite view.<\/span>\n                        <\/div>\n\n                        <div class=\"cp_surface_map_inputs\">\n                            <input type=\"text\" id=\"cpGoogleMapsAddress\" placeholder=\"Enter an address for satellite view\">\n\n                            <select id=\"cpGoogleMapsMapType\" aria-label=\"Map type\">\n                                <option value=\"satellite\">Satellite<\/option>\n                                <option value=\"hybrid\">Hybrid<\/option>\n                            <\/select>\n\n                            <button type=\"button\" id=\"cpSearchGoogleMapsAddress\" class=\"cp_btn cp_btn_secondary\">Load Address<\/button>\n                        <\/div>\n\n                        <p id=\"cpGoogleMapsStatus\" class=\"cp_hint cp_mode_hint\">\n                            Google Maps stays off until you explicitly enable satellite mode.\n                        <\/p>\n                    <\/div>\n                <\/div>\n\n                <div class=\"cp_toolbar\">\n                    <div class=\"cp_toolbar_floorplan\">\n                        <div class=\"cp_setup_hint\">\n                            <strong>Step 2:<\/strong> Choose a sample floorplan to explore the planner, or upload your own, then set the scale and add cameras below.\n                        <\/div>\n\n                        <div class=\"cp_toolbar_group\">\n                            <div class=\"cp_sample_picker\">\n                                <label for=\"cpSampleFloorplan\" class=\"cp_label_with_tooltip\"><span>Try a Sample Floorplan<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Load a built-in demo floorplan so you can test camera placement straight away without uploading your own plan first.\" data-tooltip=\"Load a built-in demo floorplan so you can test camera placement straight away without uploading your own plan first.\">?<\/span><\/label>\n                                <div class=\"cp_inline_action cp_inline_action_compact\">\n                                    <select id=\"cpSampleFloorplan\" aria-label=\"Sample floorplan\"><\/select>\n                                    <button type=\"button\" id=\"cpLoadSample\" class=\"cp_btn cp_btn_secondary\">Load Sample<\/button>\n                                <\/div>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"cp_toolbar_group\">\n                            <label class=\"cp_btn\">\n                                Step 2: Upload Your Own Floorplan\n                                <input type=\"file\" id=\"cpUpload\" accept=\"image\/*\" hidden>\n                            <\/label>\n\n                            <button type=\"button\" id=\"cpSetScale\" class=\"cp_btn\" disabled>Step 3: Set Scale<\/button>\n                        <\/div>\n                    <\/div>\n\n                    <div class=\"cp_toolbar_group\">\n                        <button type=\"button\" id=\"cpDuplicateSelected\" class=\"cp_btn\" disabled>Duplicate<\/button>\n                        <button type=\"button\" id=\"cpReset\" class=\"cp_btn cp_btn_muted\">Reset<\/button>\n                    <\/div>\n\n                    <div class=\"cp_toolbar_group\">\n                        <button type=\"button\" id=\"cpZoomOut\" class=\"cp_btn cp_btn_secondary\" disabled>Zoom Out<\/button>\n                        <button type=\"button\" id=\"cpZoomIn\" class=\"cp_btn cp_btn_secondary\" disabled>Zoom In<\/button>\n                        <button type=\"button\" id=\"cpFitPlan\" class=\"cp_btn cp_btn_secondary\" disabled>Fit Plan<\/button>\n                        <button type=\"button\" id=\"cpCenterView\" class=\"cp_btn cp_btn_secondary\" disabled>Center View<\/button>\n                        <button type=\"button\" id=\"cpUndo\" class=\"cp_btn cp_btn_secondary\" disabled>Undo<\/button>\n                        <button type=\"button\" id=\"cpRedo\" class=\"cp_btn cp_btn_secondary\" disabled>Redo<\/button>\n                    <\/div>\n\n                    <div class=\"cp_toolbar_group cp_toolbar_group_toggles\">\n                        <label class=\"cp_toggle\">\n                            <input type=\"checkbox\" id=\"cpToggleLabels\" checked>\n                            Labels\n                        <\/label>\n\n                        <label class=\"cp_toggle\">\n                            <input type=\"checkbox\" id=\"cpPanLock\">\n                            Lock Plan\n                        <\/label>\n\n                        <label class=\"cp_toggle\">\n                            <input type=\"checkbox\" id=\"cpShowGrid\" checked>\n                            Show Grid\n                        <\/label>\n\n                        <label class=\"cp_toggle\">\n                            <input type=\"checkbox\" id=\"cpSnapGrid\">\n                            Snap to Grid\n                        <\/label>\n                    <\/div>\n                <\/div>\n\n                <div class=\"cp_projectbar\">\n                    <div class=\"cp_projectbar_actions\">\n                        <div class=\"cp_projectbar_field\">\n                            <label for=\"cpProjectName\" class=\"cp_label_with_tooltip\"><span>Project Name<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Optional project name used in browser saves, BOM exports, and project JSON files.\" data-tooltip=\"Optional project name used in browser saves, BOM exports, and project JSON files.\">?<\/span><\/label>\n                            <input type=\"text\" id=\"cpProjectName\" placeholder=\"Warehouse South - Loading Dock\">\n                        <\/div>\n\n                        <button type=\"button\" id=\"cpSaveBrowser\" class=\"cp_btn cp_btn_secondary\" disabled>Save (Browser)<\/button>\n                        <button type=\"button\" id=\"cpLoadBrowser\" class=\"cp_btn cp_btn_secondary\">Load (Browser)<\/button>\n                        <button type=\"button\" id=\"cpExportJson\" class=\"cp_btn cp_btn_secondary\" disabled>Export Project JSON<\/button>\n\n                        <label class=\"cp_btn cp_btn_secondary\">\n                            Import Project JSON\n                            <input type=\"file\" id=\"cpImportJson\" accept=\"application\/json\" hidden>\n                        <\/label>\n                    <\/div>\n\n                    <span id=\"cpProjectStatus\" class=\"cp_status\" aria-live=\"polite\">Not saved yet.<\/span>\n                <\/div>\n\n                <div class=\"cp_canvas_wrap\">\n                    <div class=\"cp_canvas_stack\">\n                        <div id=\"cpGoogleMap\" class=\"cp_google_map\" hidden><\/div>\n                        <div id=\"cpStage\" class=\"cp_stage\"><\/div>\n                    <\/div>\n                    <div id=\"cpCanvasHint\" class=\"cp_canvas_hint\">\n                        Choose a sample floorplan or upload your own, then set the scale and add cameras from the model picker below. Wheel to zoom, drag to pan, use Lock Plan to freeze the view, press Delete to remove a camera, and use Ctrl\/Cmd+Z for undo.\n                    <\/div>\n                <\/div>\n\n                <div class=\"cp_canvas_actions\">\n                    <button type=\"button\" id=\"cpExportPng\" class=\"cp_btn cp_btn_secondary\" disabled>Export PNG<\/button>\n                    <button type=\"button\" id=\"cpCaptureScreenshot\" class=\"cp_btn cp_btn_secondary\" disabled>Capture Screenshot<\/button>\n                <\/div>\n\n                <div class=\"cp_bottom_panel\">\n                    <div class=\"cp_panel_grid\">\n                        <div class=\"cp_panel_block\">\n                            <h3>Selected Item<\/h3>\n\n                            <div id=\"cpCameraControls\" class=\"cp_subsection\">\n                                <label for=\"cpBrand\" class=\"cp_label_with_tooltip\"><span>Camera Brand<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Filter the preset list by brand so you only see matching camera models.\" data-tooltip=\"Filter the preset list by brand so you only see matching camera models.\">?<\/span><\/label>\n                                <select id=\"cpBrand\">\n                                    <option value=\"all\">All Brands<\/option>\n                                    <option value=\"hikvision\">Hikvision<\/option>\n                                    <option value=\"dahua\">Dahua<\/option>\n                                    <option value=\"hilook\">HiLook<\/option>\n                                <\/select>\n\n                                <label for=\"cpPreset\" class=\"cp_label_with_tooltip\"><span>Camera Model<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Choose a preset camera model and lens combination. Supported presets automatically load matching FoV, range, DORI, and product details.\" data-tooltip=\"Choose a preset camera model and lens combination. Supported presets automatically load matching FoV, range, DORI, and product details.\">?<\/span><\/label>\n                                <div class=\"cp_inline_action\">\n                                    <select id=\"cpPreset\"><\/select>\n                                    <button type=\"button\" id=\"cpAddCam\" class=\"cp_btn\" disabled>Step 4: Add Camera<\/button>\n                                <\/div>\n\n                                <p id=\"cpPresetInfo\" class=\"cp_preset_info\">\n                                    Manual camera settings.\n                                <\/p>\n                            <\/div>\n\n                            <div class=\"cp_subsection\">\n                                <label for=\"cpDeviceType\" class=\"cp_label_with_tooltip\"><span>Site Equipment<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Add supporting items such as NVRs, switches, routers, UPS units, and other infrastructure markers to the same plan.\" data-tooltip=\"Add supporting items such as NVRs, switches, routers, UPS units, and other infrastructure markers to the same plan.\">?<\/span><\/label>\n                                <div class=\"cp_inline_action\">\n                                    <select id=\"cpDeviceType\">\n                                        <option value=\"nvr\">NVR<\/option>\n                                        <option value=\"ups\">UPS<\/option>\n                                        <option value=\"poe_switch\">PoE Switch<\/option>\n                                        <option value=\"network_switch\">Network Switch<\/option>\n                                        <option value=\"router\">Router<\/option>\n                                        <option value=\"modem\">Modem<\/option>\n                                        <option value=\"wireless_ap\">Wireless AP<\/option>\n                                        <option value=\"server_nas\">Server \/ NAS<\/option>\n                                        <option value=\"patch_panel\">Patch Panel<\/option>\n                                        <option value=\"power_supply\">Power Supply<\/option>\n                                        <option value=\"alarm_panel\">Alarm Panel<\/option>\n                                        <option value=\"access_controller\">Access Controller<\/option>\n                                        <option value=\"intercom\">Intercom<\/option>\n                                        <option value=\"speaker_siren\">Speaker \/ Siren<\/option>\n                                        <option value=\"monitor\">Monitor<\/option>\n                                        <option value=\"misc_device\">Misc Device<\/option>\n                                    <\/select>\n                                    <button type=\"button\" id=\"cpAddDevice\" class=\"cp_btn cp_btn_secondary\" disabled>Add Device<\/button>\n                                <\/div>\n\n                                <div id=\"cpNvrModelWrap\">\n                                    <label for=\"cpNvrModel\" class=\"cp_label_with_tooltip\"><span>NVR Model<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Choose the recorder model for this brand. Port count, channel count, and product links follow this selection.\" data-tooltip=\"Choose the recorder model for this brand. Port count, channel count, and product links follow this selection.\">?<\/span><\/label>\n                                    <select id=\"cpNvrModel\"><\/select>\n                                <\/div>\n                            <\/div>\n\n                            <p id=\"cpItemModeHint\" class=\"cp_hint cp_mode_hint\">\n                                Cameras use FoV and DORI coverage. Equipment markers use colour, label, and size only.\n                            <\/p>\n\n                            <label for=\"cpCamName\" class=\"cp_label_with_tooltip\"><span>Item Name<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Set a custom on-plan name for the selected camera or equipment item.\" data-tooltip=\"Set a custom on-plan name for the selected camera or equipment item.\">?<\/span><\/label>\n                            <input type=\"text\" id=\"cpCamName\" placeholder=\"Front Door Camera \/ Rack NVR\">\n\n                            <div class=\"cp_action_row\">\n                                <button type=\"button\" id=\"cpFocusSelected\" class=\"cp_btn cp_btn_secondary\" disabled>Focus Item<\/button>\n                                <button type=\"button\" id=\"cpDeleteSelected\" class=\"cp_btn cp_btn_muted cp_legacy_action\" disabled>Delete Item<\/button>\n                            <\/div>\n\n                            <div id=\"cpProductActions\" class=\"cp_action_row cp_product_actions cp_legacy_action\">\n                                <a id=\"cpViewProduct\" class=\"cp_btn cp_btn_secondary\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\" hidden>Open Product<\/a>\n                                <a id=\"cpAddToCart\" class=\"cp_btn\" href=\"#\" target=\"_blank\" rel=\"noopener noreferrer\" hidden>Add to Cart<\/a>\n                            <\/div>\n\n                            <div id=\"cpCameraSpecControls\" class=\"cp_subsection\">\n                                <label for=\"cpIconType\" class=\"cp_label_with_tooltip\"><span>Camera Icon<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Change the on-plan camera symbol between dome, turret, and bullet styles.\" data-tooltip=\"Change the on-plan camera symbol between dome, turret, and bullet styles.\">?<\/span><\/label>\n                                <select id=\"cpIconType\">\n                                    <option value=\"dome\">Dome<\/option>\n                                    <option value=\"turret\">Turret<\/option>\n                                    <option value=\"bullet\">Bullet<\/option>\n                                <\/select>\n\n                                <label for=\"cpLens\" class=\"cp_label_with_tooltip\"><span>Lens Preset<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Switch lens size to quickly compare wide-angle versus narrower coverage.\" data-tooltip=\"Switch lens size to quickly compare wide-angle versus narrower coverage.\">?<\/span><\/label>\n                                <select id=\"cpLens\">\n                                    <option value=\"2.8\">2.8mm Wide Angle<\/option>\n                                    <option value=\"4\">4mm Standard<\/option>\n                                    <option value=\"6\">6mm Medium<\/option>\n                                    <option value=\"12\">12mm Telephoto<\/option>\n                                <\/select>\n\n                                <label for=\"cpFov\" class=\"cp_label_with_tooltip\"><span>Field of View (FoV)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Adjust how wide the camera sees. Wider angles cover more area, while narrower angles usually give more detail at distance.\" data-tooltip=\"Adjust how wide the camera sees. Wider angles cover more area, while narrower angles usually give more detail at distance.\">?<\/span><\/label>\n                                <div class=\"cp_row\">\n                                    <input type=\"range\" id=\"cpFov\" min=\"20\" max=\"120\" value=\"80\">\n                                    <span id=\"cpFovVal\" class=\"cp_badge\">80 deg<\/span>\n                                <\/div>\n\n                                <label for=\"cpRange\" class=\"cp_label_with_tooltip\"><span>Coverage Range<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Set the planned visible distance for the camera overlay on the drawing or map.\" data-tooltip=\"Set the planned visible distance for the camera overlay on the drawing or map.\">?<\/span><\/label>\n                                <div class=\"cp_row\">\n    <input type=\"range\" id=\"cpRange\" min=\"2\" max=\"120\" value=\"12\">\n    <span id=\"cpRangeVal\" class=\"cp_badge\">12m<\/span>\n  <\/div>\n<\/div>\n\n                            <label for=\"cpCamSize\" class=\"cp_label_with_tooltip\"><span>Marker Display Size<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Change the visual size of the camera or equipment marker without affecting real coverage calculations.\" data-tooltip=\"Change the visual size of the camera or equipment marker without affecting real coverage calculations.\">?<\/span><\/label>\n                            <div class=\"cp_row\">\n                                <input type=\"range\" id=\"cpCamSize\" min=\"0.2\" max=\"2\" step=\"0.1\" value=\"0.5\">\n                                <span id=\"cpCamSizeVal\" class=\"cp_badge\">0.5x<\/span>\n                            <\/div>\n\n                            <label for=\"cpCamColor\" class=\"cp_label_with_tooltip\"><span>Coverage Colour<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Choose the colour used for the selected item and its visible coverage overlay.\" data-tooltip=\"Choose the colour used for the selected item and its visible coverage overlay.\">?<\/span><\/label>\n                            <input type=\"color\" id=\"cpCamColor\" value=\"#f97316\">\n\n                            <label for=\"cpCamNotes\" class=\"cp_label_with_tooltip\"><span>Notes<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Add planning notes for the item. Notes are included in browser saves, JSON exports, and BOM summaries where relevant.\" data-tooltip=\"Add planning notes for the item. Notes are included in browser saves, JSON exports, and BOM summaries where relevant.\">?<\/span><\/label>\n                            <textarea id=\"cpCamNotes\" rows=\"4\" placeholder=\"Example: Overlapping front entry, facial identification at 5m.\"><\/textarea>\n\n                            <div id=\"cpCameraInfrastructure\" class=\"cp_subsection\">\n                                <h4 class=\"cp_subheading\">Connectivity<\/h4>\n\n                                <label for=\"cpCameraBitrate\" class=\"cp_label_with_tooltip\"><span>Recording Bitrate (Mb\/s)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Used for storage planning. Higher bitrates generally improve image quality but increase storage requirements.\" data-tooltip=\"Used for storage planning. Higher bitrates generally improve image quality but increase storage requirements.\">?<\/span><\/label>\n                                <input type=\"number\" id=\"cpCameraBitrate\" value=\"4\" min=\"0.5\" max=\"40\" step=\"0.1\">\n\n                                <label for=\"cpCableTarget\" class=\"cp_label_with_tooltip\"><span>Cable To<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Assign the camera to a switch, NVR, or other cable target so the planner can estimate cable runs and port usage.\" data-tooltip=\"Assign the camera to a switch, NVR, or other cable target so the planner can estimate cable runs and port usage.\">?<\/span><\/label>\n                                <select id=\"cpCableTarget\"><\/select>\n\n                                <label for=\"cpRecorderTarget\" class=\"cp_label_with_tooltip\"><span>Recorder \/ NVR<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Assign the camera to a recorder so the planner can track NVR channel usage.\" data-tooltip=\"Assign the camera to a recorder so the planner can track NVR channel usage.\">?<\/span><\/label>\n                                <select id=\"cpRecorderTarget\"><\/select>\n                            <\/div>\n\n                            <div id=\"cpDeviceInfrastructure\" class=\"cp_subsection\" hidden>\n                                <h4 class=\"cp_subheading\">Device Capacity<\/h4>\n\n                                <div id=\"cpPortCapacityWrap\">\n                                    <label for=\"cpPortCapacity\" class=\"cp_label_with_tooltip\"><span>Port Capacity<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Total usable network or PoE ports available on the selected device.\" data-tooltip=\"Total usable network or PoE ports available on the selected device.\">?<\/span><\/label>\n                                    <input type=\"number\" id=\"cpPortCapacity\" value=\"0\" min=\"0\" max=\"96\" step=\"1\">\n                                <\/div>\n\n                                <div id=\"cpChannelCapacityWrap\">\n                                    <label for=\"cpChannelCapacity\" class=\"cp_label_with_tooltip\"><span>NVR Channels<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Maximum camera channels available on the selected recorder.\" data-tooltip=\"Maximum camera channels available on the selected recorder.\">?<\/span><\/label>\n                                    <input type=\"number\" id=\"cpChannelCapacity\" value=\"16\" min=\"0\" max=\"256\" step=\"1\">\n                                <\/div>\n\n                                <div id=\"cpStorageTbWrap\">\n                                    <label for=\"cpStorageTb\" class=\"cp_label_with_tooltip\"><span>Storage Capacity (TB)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Planned usable storage in whole terabytes for the selected recorder or storage device.\" data-tooltip=\"Planned usable storage in whole terabytes for the selected recorder or storage device.\">?<\/span><\/label>\n                                    <input type=\"number\" id=\"cpStorageTb\" value=\"16\" min=\"0\" max=\"1000\" step=\"1\">\n                                <\/div>\n\n                                <p id=\"cpDeviceInfrastructureHint\" class=\"cp_hint cp_mode_hint\">\n                                    These values are used for cable, PoE\/switch port, NVR channel, and storage planning.\n                                <\/p>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"cp_panel_block\">\n                            <h3>Plan Intelligence<\/h3>\n\n                            <div id=\"cpDoriControls\">\n                                <label for=\"cpDoriI\" class=\"cp_label_with_tooltip\"><span>Identify (m)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Distance where a person or object can be identified with the highest level of detail.\" data-tooltip=\"Distance where a person or object can be identified with the highest level of detail.\">?<\/span><\/label>\n                                <input type=\"number\" id=\"cpDoriI\" value=\"5\" min=\"0\" step=\"0.1\">\n\n                                <label for=\"cpDoriR\" class=\"cp_label_with_tooltip\"><span>Recognise (m)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Distance where a person already known to the viewer could reasonably be recognised.\" data-tooltip=\"Distance where a person already known to the viewer could reasonably be recognised.\">?<\/span><\/label>\n                                <input type=\"number\" id=\"cpDoriR\" value=\"12\" min=\"0\" step=\"0.1\">\n\n                                <label for=\"cpDoriD\" class=\"cp_label_with_tooltip\"><span>Detect (m)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Distance where movement or presence can be detected, even if the person cannot yet be recognised or identified.\" data-tooltip=\"Distance where movement or presence can be detected, even if the person cannot yet be recognised or identified.\">?<\/span><\/label>\n                                <input type=\"number\" id=\"cpDoriD\" value=\"25\" min=\"0\" step=\"0.1\">\n\n                                <label class=\"cp_label_with_tooltip\"><span>Show on Plan<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Choose which DORI sectors are visible on the plan so you can keep the drawing clean or show more detail when needed.\" data-tooltip=\"Choose which DORI sectors are visible on the plan so you can keep the drawing clean or show more detail when needed.\">?<\/span><\/label>\n                                <div class=\"cp_analysis_toggles\">\n                                    <label class=\"cp_toggle\">\n                                        <input type=\"checkbox\" id=\"cpShowDoriI\" checked>\n                                        Identification\n                                    <\/label>\n\n                                    <label class=\"cp_toggle\">\n                                        <input type=\"checkbox\" id=\"cpShowDoriR\" checked>\n                                        Recognition\n                                    <\/label>\n\n                                    <label class=\"cp_toggle\">\n                                        <input type=\"checkbox\" id=\"cpShowDoriD\">\n                                        Detection\n                                    <\/label>\n                                <\/div>\n\n                                <label for=\"cpCoverageOpacity\" class=\"cp_label_with_tooltip\"><span>Coverage Opacity<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Increase or decrease the strength of the camera coverage overlay so it remains readable over light or dark backgrounds.\" data-tooltip=\"Increase or decrease the strength of the camera coverage overlay so it remains readable over light or dark backgrounds.\">?<\/span><\/label>\n                                <div class=\"cp_row\">\n                                    <input type=\"range\" id=\"cpCoverageOpacity\" min=\"0.3\" max=\"3\" step=\"0.1\" value=\"2.2\">\n                                    <span id=\"cpCoverageOpacityVal\" class=\"cp_badge\">220%<\/span>\n                                <\/div>\n                            <\/div>\n\n                            <div class=\"cp_subsection\">\n                                <h4 class=\"cp_subheading\">Infrastructure<\/h4>\n\n                                <label class=\"cp_toggle\">\n                                    <input type=\"checkbox\" id=\"cpShowCableRuns\" checked>\n                                    Show Cable Runs\n                                <\/label>\n\n                                <label for=\"cpRetentionDays\" class=\"cp_label_with_tooltip\"><span>Recording Retention (days)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Used with total camera bitrate to estimate how much storage your recorder or storage device needs.\" data-tooltip=\"Used with total camera bitrate to estimate how much storage your recorder or storage device needs.\">?<\/span><\/label>\n                                <input type=\"number\" id=\"cpRetentionDays\" value=\"14\" min=\"1\" max=\"365\" step=\"1\">\n\n                                <div class=\"cp_infra_metrics\">\n                                    <div class=\"cp_infra_metric\">\n                                        <span>Total Cable<\/span>\n                                        <strong id=\"cpInfraCable\">0m<\/strong>\n                                    <\/div>\n\n                                    <div class=\"cp_infra_metric\">\n                                        <span>Longest Run<\/span>\n                                        <strong id=\"cpInfraLongest\">0m<\/strong>\n                                    <\/div>\n\n                                    <div class=\"cp_infra_metric\">\n                                        <span>Ports Used<\/span>\n                                        <strong id=\"cpInfraPorts\">0 \/ 0<\/strong>\n                                    <\/div>\n\n                                    <div class=\"cp_infra_metric\">\n                                        <span>NVR Channels<\/span>\n                                        <strong id=\"cpInfraChannels\">0 \/ 0<\/strong>\n                                    <\/div>\n\n                                    <div class=\"cp_infra_metric\">\n                                        <span>Storage<\/span>\n                                        <strong id=\"cpInfraStorage\">0 \/ 0 TB<\/strong>\n                                    <\/div>\n                                <\/div>\n\n                                <p id=\"cpInfraWarnings\" class=\"cp_hint cp_mode_hint\">\n                                    Add cameras, switches, and NVRs to see cable, PoE, and storage planning.\n                                <\/p>\n                            <\/div>\n\n                            <label for=\"cpGridMeters\" class=\"cp_label_with_tooltip\"><span>Grid Spacing (m)<\/span><span class=\"cp_tooltip\" tabindex=\"0\" role=\"img\" aria-label=\"Set the visual grid spacing used for floorplan layout and snap-to-grid positioning.\" data-tooltip=\"Set the visual grid spacing used for floorplan layout and snap-to-grid positioning.\">?<\/span><\/label>\n                            <input type=\"number\" id=\"cpGridMeters\" value=\"2\" min=\"0.5\" step=\"0.5\">\n\n                            <input type=\"hidden\" id=\"cpScale\" value=\"20\">\n\n                            <div class=\"cp_callout\">\n                                <strong>Planner Tips<\/strong>\n                                <p>Use the scale tool first, then switch on Snap to Grid for fast structured layouts.<\/p>\n                            <\/div>\n\n                            <div class=\"cp_shortcuts\">\n                                <span>Delete: remove selected<\/span>\n                                <span>D: duplicate selected<\/span>\n                                <span>F: focus selected<\/span>\n                                <span>Ctrl\/Cmd+Z: undo<\/span>\n                            <\/div>\n                        <\/div>\n\n                        <div class=\"cp_panel_block\">\n                            <div class=\"cp_panel_heading\">\n                                <h3>Plan Items on This View<\/h3>\n                                <button type=\"button\" id=\"cpAddBomToCart\" class=\"cp_btn\" disabled>Add BOM to Cart<\/button>\n                                <button type=\"button\" id=\"cpClearSurfaceItems\" class=\"cp_btn cp_btn_muted\" disabled>Clear Items<\/button>\n                                <button type=\"button\" id=\"cpExportBom\" class=\"cp_btn cp_btn_secondary\" disabled>Export BOM CSV<\/button>\n                            <\/div>\n\n                            <div id=\"cpCamList\" class=\"cp_cam_list\"><\/div>\n\n                            <p class=\"cp_hint\">\n                                Click an item on the plan or in this list to edit it. Camera coverage, equipment markers,\n                                colours, notes, and DORI values are saved into browser storage and JSON exports.\n                            <\/p>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"cp_content_block cp_content_block_outro\">\n                <h3 class=\"cp_content_section_title\">How to use the planner<\/h3>\n                <ol class=\"cp_step_list\">\n                    <li>\n                        <strong>Choose your planner mode.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Start by deciding whether you are planning from an internal drawing or from an external site view.\n                            Use <strong>Floorplan Mode<\/strong> for houses, offices, shops, warehouses, and any layout where you\n                            want to work from a building plan. Use <strong>Satellite Mode<\/strong> for driveways, front yards,\n                            carparks, perimeter fences, sheds, loading areas, and outdoor camera positioning on live Google\n                            satellite imagery.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            The workflow is slightly different in each mode. Floorplan mode relies on your uploaded drawing and a\n                            manual scale step. Satellite mode uses Google Maps, so distances are already based on real-world map\n                            measurements and there is no separate scale tool there.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Load a sample, your own floorplan, or a street address.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            If you are new to the tool, begin with one of the included sample floorplans so the planner is not blank.\n                            In <strong>Floorplan Mode<\/strong>, you can load a sample first to explore the controls, then upload your\n                            own image file when ready. In <strong>Satellite Mode<\/strong>, enter a street address, choose satellite\n                            or hybrid view, and load the map before placing any cameras.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            If you upload a new floorplan later, treat it as a new drawing and re-check the scale before trusting the\n                            distance-based overlays. If you switch to a different property in satellite mode, simply load the new\n                            address and continue working there.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Set the scale in floorplan mode.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            This step exists in <strong>Floorplan Mode only<\/strong>. It is one of the most important parts of the\n                            workflow because it tells the planner how many pixels on your drawing represent one real-world metre.\n                            Without a correct scale, the coverage overlays may still look fine visually, but the range, DORI, cable,\n                            and storage planning numbers will be far less reliable.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            To set it, click <strong>Step 3: Set Scale<\/strong>, then click two points on the floorplan that represent\n                            a known real distance, such as the width of a garage door, a hallway length, a room dimension, or any\n                            measurement shown on the plan. Enter the real distance when prompted. For best results, use a longer\n                            measurement rather than a very short one, because longer references usually produce a more accurate scale.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            If the result feels wrong later, simply run the scale step again. You do not need to rebuild the whole\n                            plan from scratch just because the first measurement was off.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Choose a camera brand, model, and lens.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Select the brand first so the model list stays relevant, then choose the exact camera preset you want to\n                            test. The planner will automatically load the matching lens, field of view, coverage range, DORI values,\n                            and product information for supported presets.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            This makes it easy to compare different product families without entering every value manually. If you want\n                            to fine-tune a layout after picking a preset, you can still adjust FoV, range, opacity, labels, and other\n                            settings to suit the project.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Add cameras to the plan.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Click <strong>Add Camera<\/strong> to place the selected model onto the active view. You can drag the camera\n                            to a better position, rotate it to face the right direction, duplicate it for repeated areas, and build\n                            up your layout one camera at a time. In satellite mode, cameras are placed directly onto the live map.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            A good workflow is to first place cameras roughly where they belong, then go back and refine each one.\n                            This is often faster than trying to perfect every camera before the rest of the layout exists.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Refine the camera coverage.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Adjust the lens preset, field of view, coverage range, marker size, and coverage opacity until the layout\n                            is easy to read. Turn Identification, Recognition, and Detection visibility on or off depending on how\n                            much detail you want to show. If the drawing feels busy, lower the visible overlays and use labels to keep\n                            the plan tidy.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            In darker satellite scenes, increasing coverage opacity can make the overlays stand out much more clearly.\n                            In busy indoor plans, hiding Detection while keeping Identification and Recognition visible often creates a\n                            cleaner result.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Add site equipment such as NVRs, switches, routers, and UPS units.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Use the site equipment section to drop supporting hardware onto the same plan. When you choose a camera\n                            brand, the matching NVR options are available for that brand, making it easier to keep recorder choices\n                            aligned with the rest of the design.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            This is useful when you want the drawing to serve as both a coverage plan and an early equipment layout.\n                            It helps you show not just where cameras go, but also where recorders, switches, and other infrastructure\n                            might sit on the job.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Link cameras to infrastructure and review capacity.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Assign cameras to cable targets and recorders where needed, then review the infrastructure panel. This helps\n                            you estimate total cable, longest cable run, port usage, NVR channel usage, and storage requirements based\n                            on bitrate and retention days.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            The cable and storage numbers are planning guides rather than final installer measurements, but they are\n                            very helpful for comparing layouts, checking whether an NVR is large enough, and spotting when extra\n                            switching or storage may be needed.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Use the plan tools to tidy the layout.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Zoom in and out, fit the plan to screen, centre the view, show or hide the grid, and enable snap to grid\n                            for more structured layouts. Use <strong>Lock Plan<\/strong> when you want to stop accidental panning or\n                            zooming and focus only on moving cameras and equipment.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            On floorplans, grid and snap can help keep indoor layouts neat and consistent. On either mode, duplicate,\n                            undo, redo, and focus item are useful when you are testing several similar positions quickly.\n                        <\/p>\n                    <\/li>\n                    <li>\n                        <strong>Save, reload, or export the project.<\/strong>\n                        <p class=\"cp_step_detail\">\n                            Save the project in your browser while you work, or export the full project as JSON for reuse later.\n                            Export a BOM CSV to build a product list, export PNG from floorplan mode for sharing, or capture a\n                            screenshot in satellite mode when you want to show map-based layouts.\n                        <\/p>\n                        <p class=\"cp_step_detail\">\n                            A simple workflow is to save to browser while you iterate, export JSON when you want a portable backup,\n                            export BOM when you are ready to build a materials list, and export an image when you want to show the\n                            layout to a customer, builder, or installer.\n                        <\/p>\n                    <\/li>\n                <\/ol>\n\n                <div class=\"cp_content_grid cp_content_grid_secondary\">\n                    <div class=\"cp_content_card\">\n                        <h3>Best for<\/h3>\n                        <p>\n                            Comparing camera options, planning blind-side coverage, preparing quoting material, checking basic NVR and\n                            storage requirements, and showing customers a clearer proposed layout.\n                        <\/p>\n                    <\/div>\n\n                    <div class=\"cp_content_card\">\n                        <h3>Helpful tip<\/h3>\n                        <p>\n                            Use the sample floorplans first to learn the workflow, then switch to your own site. For indoor projects,\n                            floorplan mode is usually the fastest. For outdoor areas, carparks, driveways, and perimeters, satellite\n                            mode gives a much better starting point.\n                        <\/p>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n\n\n\n<p><strong>Please email your plan to SecurityWholesalers.com.au for product recommendations<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What this tool does<\/h3>\n\n\n\n<p>This free planner helps you map out camera locations and coverage on top of a floorplan image (or site sketch). Once your floorplan is uploaded, you can add as many cameras as you like, move them around, rotate them to face the correct direction, and tune coverage settings such as lens FoV and range. For more detailed planning, you can enable DORI distance rings (Detect \/ Recognise \/ Identify) to visualise what you can reasonably expect at different distances.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Important: how rotation works<\/h3>\n\n\n\n<p>Each camera has a <strong>small black circle (rotation knob)<\/strong> just above the camera icon.<br><strong>Drag that black circle around<\/strong> to rotate the camera direction. This rotation control is designed to stay close and easy to grab \u2014 you should not need to zoom out just to reach it.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step-by-step instructions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1) Upload a floorplan<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Upload Floorplan<\/strong>.<\/li>\n\n\n\n<li>Choose an image file (PNG\/JPG).<\/li>\n\n\n\n<li>The floorplan will automatically fit the full canvas so you can start planning immediately.<\/li>\n<\/ol>\n\n\n\n<p><strong>Tip:<\/strong> If your floorplan looks low quality, export a higher resolution image\/PDF from your architect or agent and upload that instead.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">2) Set the scale (recommended)<\/h3>\n\n\n\n<p>Setting the scale makes coverage distances and DORI rings more meaningful.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Set Scale<\/strong> (the ruler button).<\/li>\n\n\n\n<li>Click <strong>Point A<\/strong> on the plan.<\/li>\n\n\n\n<li>Click <strong>Point B<\/strong> on the plan.<\/li>\n\n\n\n<li>When prompted, enter the real-world distance between those points in <strong>metres<\/strong> (e.g., 10).<\/li>\n<\/ol>\n\n\n\n<p>Once set, the planner calculates <strong>pixels-per-metre<\/strong>, improving distance accuracy for coverage and rings.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">3) Add your first camera<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Add Camera<\/strong>.<\/li>\n\n\n\n<li>A new camera will appear centred on the plan.<\/li>\n\n\n\n<li>Drag the camera to its intended mounting position (e.g., doorway, corridor, driveway corner).<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">4) Rotate the camera to face the right direction<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click the camera to select it.<\/li>\n\n\n\n<li>Find the <strong>small black circle above the camera<\/strong>.<\/li>\n\n\n\n<li><strong>Drag the black circle<\/strong> around to rotate the camera.<\/li>\n\n\n\n<li>Release \u2014 the camera will stay facing that direction.<\/li>\n<\/ol>\n\n\n\n<p>This is the fastest way to aim cameras accurately without fiddly zooming or tiny handles.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">5) Adjust coverage settings (per camera)<\/h3>\n\n\n\n<p>Click a camera, then use the <strong>Selected Camera Settings<\/strong> panel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lens Preset:<\/strong> Choose a typical lens (2.8 \/ 4 \/ 6 \/ 12mm). This updates FoV to a sensible default.<\/li>\n\n\n\n<li><strong>Field of View (FoV):<\/strong> Fine-tune the coverage angle if required.<\/li>\n\n\n\n<li><strong>Coverage Range:<\/strong> Increase\/decrease how far the coverage wedge extends.<\/li>\n\n\n\n<li><strong>Camera Display Size:<\/strong> Make the camera icon larger or smaller for easier positioning (this is visual only).<\/li>\n<\/ul>\n\n\n\n<p>Each camera keeps its own settings, so you can mix wide-angle indoor cameras with narrow long-range cameras on the same plan.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">6) Add DORI distance rings (optional)<\/h3>\n\n\n\n<p>DORI rings help you visualise what distances are realistic for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Detect (D):<\/strong> A person is present<\/li>\n\n\n\n<li><strong>Recognise (R):<\/strong> Confirm if it\u2019s someone you know<\/li>\n\n\n\n<li><strong>Identify (I):<\/strong> Identify a person (best case)<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Enter distances in metres under <strong>DORI Distance Rings<\/strong>.<\/li>\n\n\n\n<li>Select a camera \u2014 rings will appear around that camera.<\/li>\n\n\n\n<li>Adjust values per camera if you are mixing different lenses\/resolutions.<\/li>\n<\/ol>\n\n\n\n<p><strong>Note:<\/strong> DORI is a planning guide only. Real results depend on resolution, mounting height, lighting, angle, and scene complexity.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">7) Manage cameras (list + delete)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the <strong>Camera List<\/strong> to jump to a camera quickly.<\/li>\n\n\n\n<li>Click <strong>Delete Selected Camera<\/strong> to remove the currently selected camera.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">8) Export your plan<\/h3>\n\n\n\n<p>When you\u2019re happy:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click <strong>Export PNG<\/strong>.<\/li>\n\n\n\n<li>You\u2019ll get a clean image export you can attach to:\n<ul class=\"wp-block-list\">\n<li>quotes \/ proposals<\/li>\n\n\n\n<li>installer scope notes<\/li>\n\n\n\n<li>internal job planning<\/li>\n\n\n\n<li>customer approvals<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Practical tips for best results<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Plan cameras for <strong>angles<\/strong>, not just distance. A camera at a shallow angle down a corridor usually performs better than one pointed straight at faces in a doorway.<\/li>\n\n\n\n<li>Don\u2019t overestimate night performance: longer distance does not always equal usable identification at night.<\/li>\n\n\n\n<li>Use DORI rings to guide expectations, but validate choices using real camera specs and the intended mounting height.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The Free Camera Placement Planner &amp; Designer lets you upload a floorplan and quickly design a CCTV layout by placing cameras directly on the plan. You can adjust lens field-of-view, coverage distance, camera display size, and optional DORI distance rings, then export a clean PNG for quotes, proposals, or installer notes. It\u2019s built to be [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-53","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CCTV Camera Planner Tool \u2013 Design &amp; Plan CCTV Coverage<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CCTV Camera Planner Tool \u2013 Design &amp; Plan CCTV Coverage\" \/>\n<meta property=\"og:description\" content=\"The Free Camera Placement Planner &amp; Designer lets you upload a floorplan and quickly design a CCTV layout by placing cameras directly on the plan. You can adjust lens field-of-view, coverage distance, camera display size, and optional DORI distance rings, then export a clean PNG for quotes, proposals, or installer notes. It\u2019s built to be [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/\" \/>\n<meta property=\"og:site_name\" content=\"CCTV installer tools\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-29T02:20:03+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/\",\"url\":\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/\",\"name\":\"CCTV Camera Planner Tool \u2013 Design & Plan CCTV Coverage\",\"isPartOf\":{\"@id\":\"https:\/\/www.securitywholesalers.com.au\/tools\/#website\"},\"datePublished\":\"2026-02-12T01:32:20+00:00\",\"dateModified\":\"2026-04-29T02:20:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.securitywholesalers.com.au\/tools\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CCTV Camera Planner &amp; Designer\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.securitywholesalers.com.au\/tools\/#website\",\"url\":\"https:\/\/www.securitywholesalers.com.au\/tools\/\",\"name\":\"CCTV installer tools\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.securitywholesalers.com.au\/tools\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CCTV Camera Planner Tool \u2013 Design & Plan CCTV Coverage","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/","og_locale":"en_US","og_type":"article","og_title":"CCTV Camera Planner Tool \u2013 Design & Plan CCTV Coverage","og_description":"The Free Camera Placement Planner &amp; Designer lets you upload a floorplan and quickly design a CCTV layout by placing cameras directly on the plan. You can adjust lens field-of-view, coverage distance, camera display size, and optional DORI distance rings, then export a clean PNG for quotes, proposals, or installer notes. It\u2019s built to be [&hellip;]","og_url":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/","og_site_name":"CCTV installer tools","article_modified_time":"2026-04-29T02:20:03+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/","url":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/","name":"CCTV Camera Planner Tool \u2013 Design & Plan CCTV Coverage","isPartOf":{"@id":"https:\/\/www.securitywholesalers.com.au\/tools\/#website"},"datePublished":"2026-02-12T01:32:20+00:00","dateModified":"2026-04-29T02:20:03+00:00","breadcrumb":{"@id":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.securitywholesalers.com.au\/tools\/camera-planner\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.securitywholesalers.com.au\/tools\/"},{"@type":"ListItem","position":2,"name":"CCTV Camera Planner &amp; Designer"}]},{"@type":"WebSite","@id":"https:\/\/www.securitywholesalers.com.au\/tools\/#website","url":"https:\/\/www.securitywholesalers.com.au\/tools\/","name":"CCTV installer tools","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.securitywholesalers.com.au\/tools\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/pages\/53","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/comments?post=53"}],"version-history":[{"count":16,"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/pages\/53\/revisions"}],"predecessor-version":[{"id":121,"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/pages\/53\/revisions\/121"}],"wp:attachment":[{"href":"https:\/\/www.securitywholesalers.com.au\/tools\/wp-json\/wp\/v2\/media?parent=53"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}