SightPlan AI — Intelligent CCTV Layout Optimization
Inspiration
Designing a CCTV system involves more than placing cameras around a building. Security installers and integrators must estimate coverage, account for walls and obstructions, identify blind spots, and balance surveillance requirements against hardware and installation costs.
This process can require repeated manual adjustments. We wanted to build a tool that turns an architectural floor plan into a preliminary, data-driven CCTV layout and makes the trade-offs between coverage and camera count easier to understand.
What It Does
SightPlan AI analyzes a 2D building floor plan and generates a preliminary CCTV camera layout based on a user-defined coverage target and camera budget.
Users can provide a floor plan in PNG, JPG, JPEG, or PDF format, specify the approximate building width, choose a target coverage percentage, and set the maximum number of cameras.
The system then:
- Processes the floor plan: Normalizes the input and constructs a spatial representation of walls, the building footprint, and usable interior space.
- Generates camera candidates: Finds plausible camera positions within the valid interior area.
- Calculates visibility: Evaluates camera field of view, maximum range, and wall-blocked line of sight.
- Optimizes placement: Uses a greedy coverage-optimization algorithm to select cameras that contribute the most additional coverage.
- Identifies blind spots: Detects uncovered interior regions and reports their estimated area and priority.
- Visualizes the result: Produces a floor-plan overlay showing camera positions, orientations, coverage, and remaining blind spots.
The goal is to help security professionals move from a floor plan to a useful preliminary design faster, while retaining visibility into the assumptions and limitations behind the result.
How We Built It
The backend is written in Python and uses OpenCV and NumPy for image processing, with PyMuPDF for PDF input handling. The preprocessing pipeline converts supported file formats into a consistent spatial representation that the analysis engine can consume.
The optimization engine generates candidate camera positions, evaluates visibility using geometric constraints, and estimates the union of the areas covered by selected cameras. At each step, a greedy algorithm selects the candidate providing the greatest additional coverage until the target is reached or the camera budget is exhausted.
FastAPI exposes the analysis pipeline through a REST API, allowing the frontend to submit floor plans and receive structured camera placements, coverage metrics, and blind-spot information.
Rather than relying on a language model to guess camera locations, we use deterministic geometry for the core placement calculations. This makes the decisions easier to inspect and validate.
What We Learned
Building this project taught us how to connect computer vision, computational geometry, optimization algorithms, API engineering, and product design into one working system.
One of our biggest challenges was creating a consistent spatial representation from different file formats while distinguishing the building interior from the exterior and preserving wall geometry for visibility calculations.
We also learned the importance of regression testing. A change that appears visually better can still produce a worse optimization result. We therefore added tests for valid camera positions, wall-blocked visibility, coverage monotonicity, blind-spot boundaries, and API behavior.
Prototype Results
On our sample floor plan, using an assumed building width of 30 metres, a 90-degree horizontal field of view, and a maximum camera range of 15 metres, the optimizer achieved:
- 96.3% estimated interior coverage
- 6 selected cameras
- 17.4 m² estimated uncovered area
- 0 high-priority blind-spot regions
The target coverage for this run was 95%.
These figures demonstrate the prototype on a controlled test layout. They are estimates produced by a simplified 2D model, not guarantees of real-world surveillance performance.
Challenges and Limitations
The accuracy of the output depends on the quality and interpretation of the input floor plan. Our current prototype works best with reasonably clean 2D architectural layouts.
It does not yet fully model camera mounting height, vertical field of view, lens characteristics, pixel density, lighting, night vision, or every real-world obstruction. The building scale is supplied by the user rather than automatically inferred.
SightPlan AI is therefore intended for preliminary layout planning and decision support, not as a certified CCTV engineering or security-compliance system.
What's Next
Our next steps are to improve floor-plan understanding, validate the designs with security installers, incorporate real-world site-survey information, and add practical features such as hardware recommendations, storage planning, and bill-of-materials generation.
Our longer-term vision is to help CCTV integrators move from site assessment to coverage optimization and deployment planning in one workflow.
SightPlan AI: Better coverage decisions, made simpler.