Overlay the plan, photograph the defect, report the snag
AR Site Inspector is a field tool for construction inspectors. An inspector signs in, sets up a project and uploads its building plan (an image exported from a DWG or PDF), then opens the AR inspection view to overlay the plan on the real site. On site they photograph a condition or defect — the photo is captured with the device camera and tagged with the device's geolocation. A vision AI assesses the photo for construction compliance: it describes the observation, states whether it looks compliant, classifies the deviation type, assigns a severity (critical, major or minor), cites a relevant IS-code where one applies, and suggests a corrective recommendation. The inspector reviews and edits that into a snag, saves it, and can ask the AI to draft a non-conformance report (NCR) for it. The snag list tracks each snag from open to closed, and a geotagged PDF snag report pulls it all together — project details, severity counts, an AI executive summary and a snag-by-snag section with the geotagged photos embedded. The tenant is the firm: every inspector shares that firm's projects, plans, snags, photos and reports, and each record is scoped to the firm.
Set up a project
Name the project, its site address and type, and upload its building plan as an exported image, with a printable QR anchor for the site.
AR plan overlay
Overlay the plan on the real ground plane in AR on supported devices, with an orbit-controlled 3D plan view that works everywhere.
Geotagged capture
Photograph a defect with the camera and the device's geolocation, then run the AI compliance check on the photo.
AI photo compliance
The vision AI describes the condition, classifies the deviation and severity, cites an IS-code and suggests a correction.
Snag list + NCR
Track each snag from open to closed with a fixed severity model, and draft a non-conformance report for any snag with the AI.
PDF snag report
A geotagged iTextSharp PDF with the firm header, severity counts, the AI summary and every snag with its photo embedded.
FirmID (the kit
OrgId), all under the prefix ASI_.
Please read this before relying on any result
AR Site Inspector is AI-assisted decision support. It is not a certified engineering or safety inspection, and it is not a substitute for a qualified engineer.
- The AI reasons over the photo and the notes you provide. It can miss a defect, misclassify a severity, misread a photo taken in poor light or at an odd angle, or cite an IS-code loosely.
- The observation, compliance status, deviation type, severity, IS-code reference, recommendation and the drafted non-conformance report are starting points for a qualified engineer's own assessment — not conclusions, and not a certification of structural, fire, safety or code compliance.
- A qualified engineer must inspect the actual site condition and independently verify every assessment, severity and IS-code reference before it is acted on, issued as a formal NCR, or relied on for any safety or sign-off decision. Nothing in this product certifies compliance.
This message is surfaced across the app — on the landing page, in the master header, on the capture and report screens, and on the PDF snag report — so it is always in view.
Built for the people who inspect a build
Site inspectors
Field inspectors who walk a site, record conditions and defects, and need a fast, structured way to log and report snags.
Site engineers & supervisors
Engineers running quality checks stage by stage who want a photo-backed snag list tied to the plan and the location.
Quality & QA/QC teams
Quality teams standardising a snag-and-NCR process across projects, with severity, IS-code references and reports.
Contractors & developers
Contractors and developers who want a clear, geotagged record of what was found on site and how it was resolved.
It suits any construction firm that wants to standardise a site inspection and produce a clear, photo-backed snag report. AR Site Inspector is a decision-support and documentation aid: the AI reasons over the photo and notes the inspector provides — it does not replace a qualified engineer's judgement, and every result must be independently checked before it is relied on.
Per-project subscription
AR Site Inspector is billed as a flat fee per construction project — one price per project covers project setup and plan upload, the AR plan overlay, AI photo compliance assessment, the snag list with AI-drafted NCRs, and geotagged PDF snag reports for the whole team on that project. Payment is via Razorpay from the Subscription area, and a successful charge keeps the firm plan active for one project cycle from the payment date.
The page map
| Page | Who | Purpose |
|---|---|---|
| ASI_Dashboard.aspx | All signed-in | The post-login home: the firm name and plan tier, stat cards (projects, active projects, open snags, critical snags, inspectors, photos), big CTAs to set up a project, capture a snag or open the AR inspection, and a recent-projects list with an open-snag count chip. |
| ASI_ProjectSetup.aspx | All signed-in | Manage projects (name, site address, type, status, start date), upload each project's building plan image, render and print its QR anchor, and manage the firm's inspectors. Links each project through to the AR inspection view. |
| ASI_ARInspection.aspx | All signed-in hero | The AR plan overlay: open a project by deep-link or by scanning its printed QR anchor, then overlay the plan on the real ground plane in AR on supported devices via Three.js WebXR, with an orbit-controlled 3D plan view as the universal fallback. Links through to capture a snag. |
| ASI_SnagCapture.aspx | All signed-in workhorse | Pick a project, take or select a photo with the camera and grab the device geolocation, run the AI photo compliance assessment, then review and save the pre-filled snag and upload the geotagged photo. Optionally draft a non-conformance report. |
| ASI_SnagList.aspx | All signed-in | Pick a project and list its snags as cards with a fixed critical/major/minor severity badge, location, status, IS-code and a photo thumbnail. Change a snag's status, filter by status and severity, and draft an NCR for a snag. |
| ASI_SnagReport.aspx | All signed-in | Pick a project and see the on-page report: severity counts (with a donut chart), an AI executive summary, the full snag table, and a "Download PDF" button for the geotagged snag report. |
| ASI_Subscription.aspx | Settings capability | Current plan, expiry and days remaining, and a Razorpay checkout to subscribe or renew the firm plan at ₹20,000 per project. |
| ASI_Master.master | Layout | The shared master page — sidebar navigation, topbar, mobile hamburger menu and a persistent "AI decision-support, not a certified inspection" note — every ASI_ page renders inside it. |
From a building plan to a geotagged PDF snag report
Set up & upload
On ASI_ProjectSetup.aspx the inspector creates the project and uploads its plan image via ASI_PlanUploadHandler.ashx; a QR anchor is generated to print for the site.
Overlay in AR
ASI_ARInspection.aspx overlays the plan on the real ground in AR (Three.js WebXR) or shows the orbit-controlled 3D plan view, aligned to the printed QR anchor.
Capture & assess
On ASI_SnagCapture.aspx a geotagged photo is sent to AssessCompliancePhoto (vision AI), which returns the observation, deviation, severity, IS-code and recommendation.
Save the snag
The inspector edits the AI result into a snag, saved via ASI_usp_SaveSnag, and the geotagged photo is stored via ASI_PhotoUploadHandler.ashx and linked to it.
Track & draft NCR
ASI_SnagList.aspx tracks each snag open→closed; GenerateNCR drafts a non-conformance report saved via ASI_usp_SetSnagNcr.
Export the PDF
ASI_SnagReportPdf.ashx produces the downloadable geotagged snag report, with embedded photos and the disclaimer included.
Four focused AI passes, all routed through ASI_ClaudeHelper
All AI calls are routed through ASI_ClaudeHelper and never throw — on any error
or malformed reply, the calling page shows a clear message instead of a raw exception. The provider is
configurable (Groq by default, or the Claude API), the photo assessment uses a vision model
(meta-llama/llama-4-scout-17b-16e-instruct), and every prompt returns strict JSON so the
pages can render structured, defensively-parsed results. None of these outputs is a certified inspection; each is
an aid for a qualified engineer's own assessment.
AssessCompliancePhoto — vision photo compliance
You are assisting a qualified site engineer with a first-pass
construction compliance check of a single site photo. This is
decision support, NOT a certified inspection. Assess ONLY what is
visible in the photo plus the context provided.
Project type: "{{project_type}}". Location context: {{location}}.
Inspector note: {{inspector_note}}. [image attached]
Return STRICT JSON only:
{ "observation": "what is visible in plain language",
"complianceStatus": "compliant | non-compliant | needs review",
"deviationType": "e.g. Honeycombing | Cover deficiency | Crack |
Alignment | Housekeeping | Safety | Finishing",
"severity": "critical | major | minor",
"isCodeRef": "a relevant IS code if one clearly applies, else ''",
"recommendation": "a corrective action to consider" }
Base it only on the photo and context. If the photo is unclear, say
so and use 'needs review'. A qualified engineer must verify every
point. No emojis, no hype.
ClassifyDeviation — classify a described defect
Classify this described construction observation for a
"{{project_type}}" project. This is decision support, NOT a certified
inspection. Description: {{description}}
Return STRICT JSON: { "deviationType": "short category",
"severity": "critical | major | minor",
"isCodeRef": "a relevant IS code if one clearly applies, else ''",
"recommendation": "a corrective action to consider" }
Base it only on the description. A qualified engineer must verify it.
No emojis, no hype.
GenerateNCR — draft a non-conformance report
Draft a concise non-conformance report (NCR) for a construction snag,
as decision support for a qualified engineer to review and issue.
Snag title: {{snag_title}}. Description: {{snag_description}}.
Deviation type: {{deviation_type}}. IS code ref: {{is_code_ref}}.
Return STRICT JSON: { "ncrTitle": "short NCR title",
"nonConformance": "what does not conform and why",
"requirement": "the requirement or standard it should meet",
"correctiveAction": "the corrective action proposed",
"note": "a reminder that an engineer must confirm and sign off" }
Base it only on the details given. No emojis, no hype.
SummariseSnagReport — an executive summary
Summarise this project's snag list for a site snag report, as
decision support for a qualified engineer. Project: {{project_name}}.
Snags (JSON): {{snags_json}}
Return STRICT JSON: { "summary": "a short plain-language summary of
the key findings and the highest-severity items",
"priority": [ "the most important items to address first" ] }
Base it only on the snags provided; do not invent counts. Remind that
an engineer must verify the findings. No emojis, no hype.
ASI_usp_SavePhoto and their compliance results via
ASI_usp_SaveComplianceCheck; snags via ASI_usp_SaveSnag, NCR
drafts via ASI_usp_SetSnagNcr, and the report summary via
ASI_usp_SaveSnagReport — so a project can be reopened, re-assessed and re-exported
as a PDF later.An orbit-controlled 3D plan view, with a WebXR plan overlay where the device supports it
The plan view always works as an orbit-controlled 3D view in the browser — the plan image on a plane you can rotate and zoom — that renders on any device with no camera and no marker. The optional AR overlay uses Three.js WebXR to place that plan plane flat on the real ground or floor at a tapped point, so the inspector can align it to the printed QR anchor on site; it needs a WebXR-capable device (Android Chrome / ARCore), a camera and HTTPS. When WebXR is unavailable — notably on most iOS browsers and desktops — the page shows an honest note and keeps the fully-working 3D plan view as the universal fallback. The AR overlay is a visual alignment aid to help relate the plan to the physical site — it is NOT survey-grade georeferencing and must not be relied on for exact positioning, measurement or setting-out.
- AR uses Three.js (
three@0.160.0) with theARButtonand WebXR hit-test to place the plan plane; the plane is textured with the project'sPlanImagePath. If the plan image is missing or fails to load, the page shows a labelled placeholder grid plane and a note to upload a plan in Project Setup. - Everyone gets the 3D plan view — the plan on an orbit-controlled plane — so the plan is always reviewable regardless of device or camera.
- The project's QR anchor (its
QrAnchorToken, rendered with qrcodejs) is printed and placed on site as the reference point the inspector aligns the AR overlay against; the AR inspection view can also be reached by scanning that QR with the in-page camera scanner (BarcodeDetector/ jsQR).
Marketing and in-app copy describe this accurately — "review the plan in 3D anywhere, and overlay it on the real site in AR on supported devices" — never implying the AR overlay is a survey-grade registration or that it works on every device.
3D plan view
The plan textured on an orbit-controlled plane — rotate, zoom and inspect it on every device, no camera needed.
WebXR plan overlay
On supported devices, place the plan plane flat on the real ground at a tapped point and align it to the printed QR anchor.
Printed QR anchor
Each project has a QR anchor to print and place on site as the alignment reference and a quick way to open the project.
Aid, not survey-grade
The overlay assists alignment; it is not precise georeferencing and is not a substitute for a proper survey or setting-out.
Plans are exported images, not parsed DWG files
AR Site Inspector uses the building plan as an exported image (PNG / JPG, or a PDF page), not as a live DWG file. It does not parse or interpret DWG/CAD geometry in the browser. The standard workflow is: export the relevant plan or sheet from your CAD software (or take a clean scan/photo of the printed sheet), then upload that image on the Project Setup page. That image is what is textured onto the plan plane in the 3D view and the AR overlay, and what the inspector aligns to the site. This is a deliberate, honest scope choice — it keeps the tool simple and reliable on a phone or tablet — and it means the plan is a visual reference, not a measurable, georeferenced CAD model.
Export from CAD
Export the plan or sheet as an image from your CAD tool, or scan the printed sheet, at a clear resolution.
Upload per project
Upload the image on Project Setup; it is stored under the firm and set as the project's plan image.
Overlay & align
The image is textured onto the plan plane for the 3D view and the AR overlay, aligned to the printed QR anchor on site.
Critical, major and minor — used consistently everywhere
Every snag carries a single, fixed-colour severity. The same three colours are used on the snag cards, the snag list, the report table, the donut chart and the PDF, so the meaning never shifts.
Critical — act now
An unsafe condition or a major non-conformance that needs immediate attention (for example a structural crack, a serious safety hazard or a load-bearing defect). Stop and correct before work continues.
Major — correct before next stage
A clear deviation that must be corrected before the next stage of work (for example honeycombing, cover deficiency or alignment out of tolerance). Plan a fix.
Minor — low risk
A small deviation or finishing/housekeeping item with low risk (for example a surface finish or a minor cosmetic issue). Log and address in the normal course.
The stack
Backend
ASP.NET Web Forms, VB.NET, .NET Framework 4.7.2. AJAX via page <WebMethod> PageMethods returning JSON. No full-page postbacks for data operations. Session-gated .ashx handlers for the plan upload, the geotagged photo upload and the PDF snag report.
Database
SQL Server (shared db_9b0fff_aiscompany). Parameterised CDATA SQL and stored procedures via ASI_DBHelper, soft delete (IsDeleted), audit columns. Prefix-scoped to ASI_.
Frontend
Tailwind CDN, construction safety-orange/amber glassmorphism, Font Awesome 6.5.1, Three.js (three@0.160.0) WebXR PlaneGeometry plan overlay with OrbitControls and ARButton, BarcodeDetector/jsQR for QR anchor scanning, navigator.geolocation for photo geotags, qrcodejs for the QR anchors, an optional Chart.js severity donut, and the master page ASI_Master.master with a persistent "not a certified inspection" note.
Integrations
Groq/Claude AI routing (vision photo compliance, deviation classification, NCR drafting, report summary) with the vision model meta-llama/llama-4-scout-17b-16e-instruct, iTextSharp for the geotagged PDF snag report with embedded photos, Razorpay (subscription checkout + webhook), WhatsApp (1msg.io) snag-report notices, Telegram build/activity alerts.
Shared helpers referenced across the pages: ASI_DBHelper
(GetTable / ExecuteSP / Scalar / P), ASI_ClaudeHelper
(AssessCompliancePhoto, ClassifyDeviation,
GenerateNCR, SummariseSnagReport),
ASI_WhatsApp, and the shared AIS RBAC/auth kit for sign-in, since there is no separate
ASI_Auth table — the inspector's identity comes from the shared kit and the firm is
the OrgId.
A firm-scoped data model
Tables
ASI_Firms
The tenant firm — name, city, contacts, subscription tier and expiry. FirmID is the kit OrgId.
ASI_Inspectors
The firm's inspectors — name and role, linked to the shared kit user, so the team on a project is known.
ASI_Projects
Projects — name, site address, project type, status, start date, the plan image path and the QR anchor token.
ASI_InspectionRounds
Inspection rounds per project — a dated pass over the site that snags and photos can be grouped under.
ASI_SnagItems
One row per snag — title, description, category, deviation type, severity (critical/major/minor), location, IS-code, status and the NCR draft.
ASI_Photos
Geotagged photos — file path, latitude/longitude, caption and capture time, linked to a project and (optionally) a snag.
ASI_ComplianceChecks
The AI photo assessment rows — observation, compliance status, deviation type, severity, IS-code and recommendation.
ASI_SnagReports
Saved snag reports — the AI summary, severity counts and metadata, so a report can be reopened and re-exported.
ASI_Subscriptions
Razorpay subscription/order rows — plan, amount, dates, status and webhook payload.
Key stored procedures
| ASI_usp_GetFirm | Resolve the tenant firm row with its subscription tier and expiry. |
| ASI_usp_GetDashboard | Headline counts for the dashboard (projects, active projects, open snags, critical snags, inspectors, photos). |
| ASI_usp_GetProjects / GetProject / GetProjectByQr / SaveProject / DeleteProject | List, read, resolve-by-QR-anchor, upsert and soft-delete projects. |
| ASI_usp_GetInspectors / SaveInspector | List the firm's inspectors and upsert an inspector record. |
| ASI_usp_GetRounds / GetRound / SaveRound | List, read and upsert inspection rounds for a project. |
| ASI_usp_GetSnags / GetSnag / SaveSnag / UpdateSnagStatus / SetSnagNcr / DeleteSnag | List, read, upsert, set status, save the NCR draft and soft-delete snags. |
| ASI_usp_SavePhoto / GetPhotos / GetProjectPhotos | Save a geotagged photo and list photos for a snag or a project. |
| ASI_usp_SaveComplianceCheck / GetComplianceChecks | Save an AI photo assessment and list a project's compliance checks. |
| ASI_usp_SaveSnagReport / GetSnagReport | Save the snag report summary and counts; read the latest report for a project. |
| ASI_usp_SaveSubscription | Record a subscription/order row; extends the firm's plan on a paid/active/charged webhook event. |
Deploy via sqlcmd
Apply the product schema directly to the shared SQL Server instance, then verify object counts. The script is
idempotent and prefix-scoped — it never touches other products' objects. The prefix is
ASI_.
sqlcmd -S sql5083.site4now.net -U db_user -P ****** -d db_9b0fff_aiscompany ^
-i C:\asp.net\CompanyProjects\AIAis\ArProjects\ARSiteInspector\ASI_Database.sql
-- verify
SELECT COUNT(*) FROM sys.tables WHERE name LIKE 'ASI_%'; -- the product tables
SELECT COUNT(*) FROM sys.procedures WHERE name LIKE 'ASI_usp_%'; -- the proc layer
Serve the site over HTTPS at /ArProjects/ARSiteInspector/ — required for the
camera and geolocation used by the AR overlay, the QR-anchor scanner and geotagged capture. Set the Groq/Claude and
Razorpay credentials in the shared config. Sign in, set up a project and upload its plan image, open the AR
inspection to overlay the plan on the real site (or review it in 3D), capture a defect photo and run the AI
compliance assessment, save the snag and draft an NCR, then download the geotagged PDF snag report.
Demo & review accounts
ASI_Default login. The demo firm "Demo Construction & Infra" is seeded with two
inspectors, two projects (the first with a printable QR anchor and a plan-image placeholder), an inspection round,
a set of realistic snags spanning critical, major and minor severities with IS-code references, geotagged photos, a
compliance check and a snag report. The reviewer/demo account is granted full, non-expiring access so every module
unlocks without hitting a paywall or checkout — important for app-store and Play-review access checks.How projects, photos and the AI results are handled
Server-side gating
Every authenticated page, PageMethod and .ashx handler re-checks sign-in and the calling firm's own FirmID — never trusting the client.
Firm scoping
All projects, plans, snags, photos, compliance checks and reports are filtered by the signed-in firm's FirmID, so one firm never sees another's data.
Defensive AI parsing
AI responses for the photo assessment, classification, NCR and summary are parsed defensively; malformed output surfaces as a clear on-screen message rather than a raw error or a corrupted save.
Not a certified inspection
The disclaimer is surfaced across the app and on the PDF; every AI output is decision support that a qualified engineer must independently verify.
Payment verification
Razorpay orders are created server-side; webhook events are HMAC-verified before a subscription is marked paid.
Site-record confidentiality
Projects, snags and photos are stored against the firm's own account to support reopening, reporting and PDF export; they are not used to train any model.
Where AR Site Inspector goes next
- Plan-pinned snags: pin each snag to an exact point on the plan overlay, so the snag list can be read as a heat-map on the drawing, not just a list.
- WebXR hit-test measurements: use the AR hit-test to offer approximate on-site distances as an aid, clearly flagged as indicative and not survey-grade.
- Round-over-round comparison: compare a snag list across inspection rounds to show what was fixed, what re-opened and what is still outstanding per stage.
- Project & stage NCR packs: curated deviation checklists and standard IS-code references per project type and construction stage, maintained by the firm.
- Engineer sign-off workflow: a review-and-approve step where a qualified engineer confirms or overrides each AI assessment and severity before a snag or NCR is finalised, reinforcing that the engineer makes the final call.
- Offline capture & sync: capture geotagged photos and snags with no signal on site, then sync the round when the device is back online.
- Contractor snag portal: a read-and-respond view for a contractor to mark a snag as addressed with a fix photo, before the inspector re-inspects and closes it.