Signals on a BIM model
NBU Medical Clinic, a two-floor outpatient clinic from the public NIBS Common BIM Files set (IFC 2x3, Revit). Every area, wall and door below was read from the file. Only the camera is a model.
From the model to the measured floor
BIMstream delivers the building as an IFC: every wall, door, room name and area, in real dimensions.
Signals computes the camera plan from the model: where each camera goes, what it sees, what is behind a wall, and how many pixels land on each square meter of floor. Rooms are classed before anyone visits: measured, counted at the door, or out.
The same model and camera plan render labeled footage of this building from the planned camera positions, so the detector and counter are tuned to this site's rooms, angles and light before a camera is mounted.
Existing cameras go in first, the plan fills the gaps. Each camera's picture is mapped to floor coordinates from the model, not from a calibration walk.
Every count Signals reports lands in a named room with an exact area: people per square meter, queue length at a counter, minutes a booked room sits empty. Accuracy is measured per room against the precision floor set in the plan.
Where the precision comes from
Three things are known before install that are normally discovered after it. Pixel density: the plan states, for every square meter, whether a camera can count people there or only tell that someone is present, so the customer is promised counts only where the geometry supports them. Occlusion: walls and columns are in the model, so a blind spot is a computed fact, not a surprise on day one. Ground truth: the floor plane and room boundaries come from the model, so a count is attributed to a room by geometry rather than by a hand-drawn zone, and a detection that lands inside a wall is caught as an error rather than counted.
What the model gives the training run
A building model with a camera plan is a complete description of a scene: camera position, lens and mount height, the floor plane, every occluder, and a name for every room. That is what a renderer needs to produce footage of this building with people in it, and because the people are placed by the renderer, every frame comes with exact boxes, floor positions and per-room counts at no labeling cost. The detector and tracker are fine-tuned on that footage for this site, then checked against real footage once cameras are up. The working plan is to render from the planned camera positions first, install, then keep the real footage and its corrected counts as the site's own training set.
Across sites the same thing compounds. Every BIM model that goes through this process adds a building type, a camera geometry and a labeled set to the corpus, and the retraining pipeline runs the same way on all of it. That corpus and the pipeline are the durable asset; the base models underneath are swappable. This run is not done yet: the renders and the fine-tuning are the next step, and the numbers on this page are geometry only.
The camera plan, floor by floor
Coverage by space
| Space | m² | Count quality | Presence |
|---|---|---|---|
| Corridor | 15 | 56% | 75% |
| Corridor | 30 | 93% | 93% |
| TEAM INTERACTION | 23 | 81% | 89% |
| GROUP IS | 18 | 86% | 86% |
| Corridor | 14 | 87% | 91% |
| Corridor | 19 | 98% | 98% |
| Corridor | 9 | 0% | 0% |
| Waiting | 178 | 94% | 96% |
| Corridor | 30 | 49% | 50% |
| Waiting | 137 | 94% | 94% |
| Corridor | 6 | 18% | 56% |
| GROUP IS | 18 | 89% | 89% |
| Corridor | 6 | 56% | 56% |
| Corridor | 19 | 91% | 91% |
| Lounge | 10 | 0% | 0% |
| Corridor | 14 | 83% | 87% |
| Reception | 9 | 3% | 21% |
| Waiting | 12 | 100% | 100% |
| Corridor | 6 | 0% | 0% |
| Corridor | 12 | 67% | 67% |
| Corridor | 42 | 77% | 79% |
| Staff lounge | 14 | 0% | 0% |
| Corridor | 8 | 4% | 4% |
| Corridor | 8 | 74% | 74% |
| Corridor | 27 | 86% | 86% |
| Staff lounge | 9 | 0% | 0% |
| Corridor | 51 | 81% | 97% |
| Corridor | 40 | 85% | 95% |
| Waiting | 12 | 0% | 0% |
| Corridor | 5 | 0% | 4% |
| Corridor | 7 | 0% | 0% |
| Corridor | 11 | 92% | 92% |
| Reception | 9 | 100% | 100% |
| Corridor | 8 | 0% | 0% |
| Reception | 22 | 27% | 27% |
| Corridor | 15 | 1% | 23% |
| Corridor | 30 | 0% | 0% |
| TEAM INTERACTION | 23 | 0% | 0% |
| GROUP IS | 18 | 0% | 0% |
| Corridor | 14 | 0% | 4% |
| Corridor | 19 | 98% | 98% |
| Corridor | 9 | 0% | 0% |
| Waiting | 178 | 26% | 39% |
| Corridor | 30 | 0% | 0% |
| Waiting | 137 | 35% | 35% |
| Corridor | 6 | 0% | 54% |
| GROUP IS | 18 | 0% | 0% |
| Corridor | 6 | 0% | 0% |
| Corridor | 19 | 0% | 0% |
| Lounge | 10 | 0% | 0% |
| Corridor | 14 | 83% | 83% |
| Reception | 9 | 0% | 0% |
| Waiting | 12 | 100% | 100% |
| Corridor | 6 | 0% | 0% |
| Corridor | 12 | 0% | 0% |
| Corridor | 42 | 0% | 60% |
| Staff lounge | 14 | 0% | 0% |
| Corridor | 8 | 4% | 4% |
| Corridor | 8 | 0% | 0% |
| Corridor | 27 | 0% | 0% |
| Staff lounge | 9 | 0% | 0% |
| Corridor | 51 | 52% | 97% |
| Corridor | 40 | 79% | 90% |
| Waiting | 12 | 0% | 2% |
| Corridor | 5 | 0% | 0% |
| Corridor | 7 | 0% | 0% |
| Corridor | 11 | 1% | 1% |
| Reception | 9 | 83% | 83% |
| Corridor | 8 | 0% | 0% |
| Reception | 22 | 0% | 0% |
Cameras added one at a time
| Cameras | Count quality | Presence |
|---|---|---|
| 1 | 16% | 24% |
| 2 | 23% | 34% |
| 3 | 31% | 41% |
| 4 | 36% | 48% |
| 5 | 43% | 49% |
| 6 | 48% | 52% |
| 7 | 52% | 56% |
| 8 | 56% | 59% |
| 9 | 59% | 63% |
| 10 | 62% | 66% |
| 11 | 65% | 69% |
| 12 | 68% | 71% |
| 13 | 70% | 73% |
| 14 | 72% | 75% |
| 15 | 74% | 77% |
| 16 | 75% | 79% |
Camera list
| Id | Lens | Heading |
|---|---|---|
| C01 | std (85° lens) | -151° |
| C02 | wide (105° lens) | -38° |
| C03 | std (85° lens) | -42° |
| C04 | wide (105° lens) | 124° |
| C05 | wide (105° lens) | 128° |
| C06 | wide (105° lens) | -37° |
| C07 | wide (105° lens) | -48° |
| C08 | std (85° lens) | 60° |
| C09 | wide (105° lens) | 126° |
| C10 | wide (105° lens) | -33° |
| C11 | wide (105° lens) | -143° |
| C12 | wide (105° lens) | 29° |
| C13 | wide (105° lens) | -125° |
| C14 | wide (105° lens) | 148° |
| C15 | wide (105° lens) | -148° |
| C16 | wide (105° lens) | 54° |
| B01 | wide (105° lens) | -40° |
| B02 | wide (105° lens) | -38° |
| B03 | wide (105° lens) | 167° |
| B04 | wide (105° lens) | -33° |
Door-line counters
| Id | Room |
|---|---|
| D01 | RECORDS |
| D02 | APPMTS |
| D03 | INTERACTION STATION |
| D04 | PROVIDER CUBICLES |
| D05 | INTERACTION STATION |
| D06 | INTERACTION STATION |
| D07 | OPT. EXAM / OFF. |
| D08 | INTERACTION STATION |
| D09 | TRICARE OFFICE |
| D10 | TRICARE OFFICE |
| D11 | PROVIDER CUBICLES |
| D12 | INTERACTION STATION |
| D13 | OPT. EXAM / OFF. |
| D14 | INTERACTION STATION |
| D15 | PHARM. OFFICE |
| D16 | WTS & MEAS. ROOM |
| D17 | INTERACTION STATION |
| D18 | CONF. LIBRARY |
| D19 | PEDIATRIC WTS & MSRS |
| D20 | INTERACTION STATION |
| D21 | COUNSELING |
| D22 | PES ADMIN. OFFICE |
| D23 | INTERACTION STATION |
| D24 | TRICARE OFFICE |
| D25 | ADMIN WORK STATN. |
| D26 | HK BREAK ROOM |
| D27 | FAC. MGR. OFFICE |
| D28 | CHIEF LOG OFFICE |
| D29 | BIOMED MAINT. ADMIN. |
| D30 | TRICARE OFFICE |
| D31 | SUPER |
| D32 | INTERACTION STATION |
| D33 | LAB OFFICE |
| D34 | HK. SUPV. OFFICE |
| D35 | WORK ROOM |
| D36 | INTERACTION STATION |
| D37 | TRICARE OFFICE |
| D38 | TECH. WORK STATION |
| D39 | TECH. WORK ROOM |
| D40 | ISOLATION INTERACTION STATION |
| D41 | INTERACTION STATION |
| D42 | BMET WORK STATION |
| D43 | CLEAN SUP. & EQUIP. |
Coverage by space
| Space | m² | Count quality | Presence |
|---|---|---|---|
| Reception | 14 | 84% | 84% |
| Corridor | 12 | 94% | 94% |
| Corridor | 28 | 94% | 94% |
| Corridor | 12 | 100% | 100% |
| Corridor | 10 | 76% | 89% |
| Waiting | 10 | 87% | 87% |
| Corridor | 28 | 94% | 94% |
| Corridor | 21 | 89% | 89% |
| Corridor | 8 | 77% | 77% |
| Corridor | 20 | 100% | 100% |
| Lounge | 10 | 83% | 83% |
| Corridor | 25 | 93% | 93% |
| Corridor | 39 | 99% | 99% |
| Vestibule | 2 | 0% | 0% |
| Corridor | 7 | 0% | 56% |
| Corridor | 12 | 54% | 100% |
| Corridor | 16 | 100% | 100% |
| Dental waiting | 32 | 96% | 96% |
| Corridor | 14 | 98% | 99% |
| Corridor | 26 | 97% | 97% |
| Corridor | 13 | 100% | 100% |
| Dental waiting | 7 | 8% | 17% |
| Corridor | 17 | 91% | 97% |
| Corridor | 8 | 74% | 74% |
| Reception | 14 | 0% | 0% |
| Corridor | 12 | 78% | 78% |
| Corridor | 28 | 94% | 94% |
| Corridor | 12 | 32% | 32% |
| Corridor | 10 | 0% | 29% |
| Waiting | 10 | 24% | 24% |
| Corridor | 28 | 9% | 12% |
| Corridor | 21 | 0% | 0% |
| Corridor | 8 | 14% | 14% |
| Corridor | 20 | 13% | 13% |
| Lounge | 10 | 0% | 0% |
| Corridor | 25 | 93% | 93% |
| Corridor | 39 | 82% | 82% |
| Vestibule | 2 | 0% | 0% |
| Corridor | 7 | 0% | 56% |
| Corridor | 12 | 12% | 100% |
| Corridor | 16 | 0% | 76% |
| Dental waiting | 32 | 1% | 1% |
| Corridor | 14 | 16% | 39% |
| Corridor | 26 | 93% | 95% |
| Corridor | 13 | 88% | 88% |
| Dental waiting | 7 | 8% | 16% |
| Corridor | 17 | 0% | 63% |
| Corridor | 8 | 3% | 3% |
Cameras added one at a time
| Cameras | Count quality | Presence |
|---|---|---|
| 1 | 12% | 14% |
| 2 | 21% | 29% |
| 3 | 29% | 40% |
| 4 | 37% | 48% |
| 5 | 44% | 55% |
| 6 | 52% | 63% |
| 7 | 58% | 69% |
| 8 | 65% | 71% |
| 9 | 69% | 76% |
| 10 | 74% | 78% |
| 11 | 77% | 81% |
| 12 | 80% | 83% |
| 13 | 83% | 86% |
| 14 | 85% | 88% |
| 15 | 87% | 90% |
| 16 | 89% | 92% |
Camera list
| Id | Lens | Heading |
|---|---|---|
| C01 | wide (105° lens) | 58° |
| C02 | wide (105° lens) | -132° |
| C03 | wide (105° lens) | 54° |
| C04 | wide (105° lens) | 143° |
| C05 | wide (105° lens) | 135° |
| C06 | wide (105° lens) | 34° |
| C07 | wide (105° lens) | 50° |
| C08 | wide (105° lens) | 30° |
| C09 | wide (105° lens) | -38° |
| C10 | wide (105° lens) | 50° |
| C11 | wide (105° lens) | 47° |
| C12 | wide (105° lens) | 142° |
| C13 | wide (105° lens) | 46° |
| C14 | wide (105° lens) | 132° |
| C15 | wide (105° lens) | -58° |
| C16 | wide (105° lens) | -29° |
| B01 | wide (105° lens) | -132° |
| B02 | wide (105° lens) | 58° |
| B03 | wide (105° lens) | 54° |
| B04 | wide (105° lens) | 143° |
Door-line counters
| Id | Room |
|---|---|
| D01 | TECH. OFFICE |
| D02 | OFFICE / EXAM |
| D03 | PH TECH |
| D04 | CONF. ROOM |
| D05 | READINESS NCOIC OFFICE |
| D06 | TECH OFFICE |
| D07 | TECH OFFICE |
| D08 | CONF. / GROUP THERAPY |
| D09 | LIBRARY / CLASSROOM |
| D10 | DIPC CLEAN |
| D11 | OFFICE |
| D12 | CMDR OFFICE |
| D13 | LIBRARY / CONF. ROOM |
| D14 | SYS. ANALYST |
| D15 | ADMIN |
| D16 | SUPER |
| D17 | PH SUPER |
| D18 | SUPER OFFICE |
| D19 | ADMIN OFFICE |
| D20 | COPY / FILE |
| D21 | CONSULT. |
| D22 | OFFICE |
| D23 | DENTAL SURGEON OFFICE |
| D24 | PH TECH |
| D25 | SEC. OFFICE |
How the camera is modeled
One camera type throughout: a 4 MP sensor, 2688 pixels wide, mounted at 2.8 m, with either a 105° or an 85° lens chosen per position. Pixel density on the floor falls with distance; the two thresholds are the IEC 62676-4 tiers for detection (25 px/m, presence) and observation (63 px/m, enough to count people and read posture). Identification tiers are not used anywhere in the plan. A 105° lens holds count quality to 16.4 m and presence to 41.3 m; the 85° lens holds count quality to 23.3 m.
Walls, columns and curtain wall panels are sectioned at 1.5 m above each floor and block the line of sight. Placement runs a greedy search over the corners of every open space, adding the camera that gains the most count-quality floor each round, and stops when a camera would add less than 6 m². The corridor-only layout is the same search restricted to the entrance and corridor, four cameras, which is where a conventional security install puts them.
What this building would report
Waiting rooms and reception: people waiting, time from arrival to being called, and the hour the room fills. Corridors and lobby: flow between departments and after-hours presence. Staff lounge: use by hour. Offices, provider cubicles and conference rooms: occupied or not, from a counter on the door line, with no camera inside. Exam rooms, labs, toilets, dressing rooms and plant rooms are out of scope by policy, so patient care spaces never carry a camera.
Caveats. The IFC records every interior partition as a wall; glass partitions would not block a camera the way the model assumes, so real coverage in glazed offices is higher than shown. Furniture, monitors and people are not in the model and will occlude at floor level; count quality assumes the camera sees heads and shoulders at 2.8 m. Camera counts here are an upper bound for the layout, not a bill of materials. Room names in this model are abbreviated and were classified by keyword: corridors, waiting rooms, reception, lobbies and lounges are measured; offices, work stations and conference rooms are counted at the door; every clinical room is out. A handful may sit in the wrong class and should be checked room by room before anything goes to a customer. The site's own cameras were not modeled because the file has none; on a BIMstream job the existing cameras would be placed first and only the gaps filled.
Where this goes with BIMstream
BIMstream delivers the model and the install. Signals turns the model into a camera plan, a coverage map, a room-by-room list of what will be measured and a training set for the site, all before anyone visits. The customer sees which rooms get counts, which get presence, and which are left out on purpose, with the pixel density behind every promise. After install the same model is the coordinate frame for every number Signals reports. Sold together: model, plan, train, install, measured floor.
Source model: NBU_MedicalClinic_Arch-Optimized.ifc, IFC 2x3, from the NIBS Common BIM Files, public sample. Computed 15 Sep 2026 with ifcopenshell 0.8.5. Confidential. Internal to YYZdata Inc. Not for distribution, in whole or in part, without written consent.