// Long-scroll product sections below the workstation function DocSections() { return (
); } // ------------------ Strip Divider ------------------ function StripDivider({ items }) { return (
{items.map((t, i) => ( {t} ))}
); } // ------------------ Section: Modules ------------------ function ModulesSection() { return (
Section 01 · Platform Modules

Ten core modules covering the full spatial data lifecycle — from collection to decision support.

Every module ships enabled. Configure per-role access, deploy incrementally, and swap components without disturbing your data pipelines. Built for the scale of state and national programmes.

{window.MODULES.map(m => (
MODULE · {m.num}
{m.name}
{m.desc}
{m.tags.slice(0, 5).map(t =>
{t}
)}
))}
); } function ModIcon({ num }) { const common = { fill: 'none', stroke: 'currentColor', strokeWidth: 1.4, strokeLinecap: 'round', strokeLinejoin: 'round' }; const s = { width: 36, height: 36 }; switch (num) { case '01': return ; case '02': return ; case '03': return ; case '04': return ; case '05': return ; case '06': return ; case '07': return ; case '08': return ; case '09': return ; case '10': return ; default: return null; } } // ------------------ Section: AI ------------------ function AISection() { return (
Section 02 · GeoAI

AI models trained on Indian terrain, crops, and cadastre — running inside your cloud, or fully offline.

Sixteen production model classes cover automatic detection, segmentation, change detection, and prediction. Every inference is auditable — source imagery, model version, confidence, and a chain-of-evidence attach to the geometry.

{/* Feature detection viz */}
{window.AI_FEATURES.slice(0, 6).map((f, i) => (

{f.name}

{f.kpi}

{f.desc}

))}
{[ { k: '2.4M', v: 'features detected · last 30 days' }, { k: '96.3%',v: 'mean model precision (mAP@0.5)' }, { k: '18', v: 'production model classes' }, { k: '<220ms', v: 'inference · single tile (GPU)' }, ].map(s => (
{s.k}
{s.v}
))}
); } function AIDetectionViz() { // Mock satellite tile with AI overlays return (
{/* Sat imagery background — mixture of crops, urban, water */} {/* River */} {/* AI detection bboxes */} CROP_KHARIF · 0.96 CROP_KHARIF · 0.94 CROP_RABI · 0.89 BUILT_UP · 0.99 WATER · 0.98 ENCROACH · 0.91 {/* Segmentation contour overlay */} {/* Overlaid caption */}
Sentinel-2 · 2026-07-11 · GeoAI v2.7
Automatic classification of crops, water, built-up and encroachment — with pixel-level attribution.
); } // ------------------ Section: 3D & Twin ------------------ function ThreeDSection() { return (
Section 03 · 3D & Digital Twin

Cities and infrastructure — modelled to building level of detail, integrated with BIM and IoT.

Fuse Survey-of-India terrain, drone-derived meshes, and BIM models into a single navigable twin. Slice underground utilities, inspect building interiors, run viewshed and shadow analysis at city scale.

DIGITAL TWIN · LIVE
Pune Municipal Digital Twin
Buildings: 12,842 · BIM linked: 217 · IoT: 1,204
{['LOD1','LOD2','LOD3','BIM'].map(l => ( {l} ))}
{[ { k: '3D Terrain', v: 'SRTM 30m, CartoDEM 10m, LiDAR 0.5m' }, { k: 'City Models', v: 'CityGML LOD1 → LOD3' }, { k: 'BIM Integration', v: 'IFC 4, Revit, ArchiCAD' }, { k: 'Indoor Mapping', v: 'Floor plans, wayfinding, POIs' }, { k: 'Underground Utilities', v: 'Depth-aware pipe & cable models' }, { k: 'Viewshed & Shadow', v: 'Real-time solar and line-of-sight' }, { k: 'Rendering Engine', v: 'CesiumJS · Three.js · WebGPU ready' }, ].map(row => (
{row.k}
{row.v}
))}
); } function IsoCity() { // Isometric city — grid of buildings with random heights const buildings = []; const cols = 14, rows = 9; const seed = (x, y) => ((x * 73856093) ^ (y * 19349663)) >>> 0; for (let y = 0; y < rows; y++) { for (let x = 0; x < cols; x++) { const r = (seed(x, y) % 100) / 100; if (r > 0.14) { const h = 20 + (r * 70); const w = 24; buildings.push({ x, y, h, w, tone: r }); } } } const isoX = (x, y) => 80 + (x - y) * 26; const isoY = (x, y) => 200 + (x + y) * 14; return ( {/* Ground plane */} {/* Grid */} {Array.from({length: cols+1}, (_,i) => ( ))} {Array.from({length: rows+1}, (_,i) => ( ))} {/* Roads */} {/* Buildings sorted by depth */} {buildings .sort((a, b) => (a.x + a.y) - (b.x + b.y)) .map((b, i) => { const baseX = isoX(b.x, b.y); const baseY = isoY(b.x, b.y); const isBIM = b.tone > 0.85; const isIoT = b.tone > 0.6 && b.tone < 0.7; const roof = isBIM ? '#e8a33d' : isIoT ? '#7bc38c' : '#c9d0d6'; const light = isBIM ? '#c98a20' : isIoT ? '#5a9c6d' : '#a8b0b8'; const dark = isBIM ? '#a06a10' : isIoT ? '#3d7048' : '#7c848c'; const top = [[baseX, baseY - b.h], [baseX + 26, baseY - b.h - 14], [baseX + 52, baseY - b.h], [baseX + 26, baseY - b.h + 14]]; const front = [[baseX + 26, baseY + 14], [baseX + 52, baseY], [baseX + 52, baseY - b.h], [baseX + 26, baseY - b.h + 14]]; const right = [[baseX, baseY], [baseX + 26, baseY + 14], [baseX + 26, baseY - b.h + 14], [baseX, baseY - b.h]]; return ( p.join(',')).join(' ')} fill={dark}/> p.join(',')).join(' ')} fill={light}/> p.join(',')).join(' ')} fill={roof} stroke="rgba(0,0,0,0.25)" strokeWidth="0.4"/> {/* Window dots */} {Array.from({length: Math.floor(b.h / 12)}, (_, k) => ( ))} {isIoT && ( )} ); }) } {/* Legend */} BIM-linked (217) IoT sensor (1,204) LOD2 mesh ); } // ------------------ Section: Mobile & Field ------------------ function MobileSection() { return (
Section 04 · Mobile & Field GIS

Field-first data collection for low-connectivity environments — from a village survey to a defense mission.

Offline-first Android and iOS apps sync back to the enterprise on demand. Digital forms, geo-tagged photos, voice notes, QR/barcode, and integrated GPS/DGPS/RTK devices.

{[ { t: 'Offline Basemaps', d: 'Pre-cache MBTiles, GeoTIFF, and WMTS pyramids to device. Downloads resume on flaky links; storage capped per project.' }, { t: 'Digital Forms', d: 'Drag-drop form builder with conditional logic, mandatory geo-tag, offline validation, and multi-language (12 Indian languages).' }, { t: 'GPS / DGPS / RTK', d: 'Bluetooth pairing with external receivers · <2 cm accuracy via NTRIP corrections · logs raw NMEA for audit.' }, { t: 'Media Capture', d: 'Geo-tagged photos with heading, voice notes, video walkarounds. All EXIF signed and hashed for chain-of-evidence.' }, { t: 'QR / Barcode', d: 'Scan asset tags to auto-populate the feature ID · works with utility RFID and standard EAN-13.' }, { t: 'Sync & Conflict', d: 'Delta sync back to PostGIS · three-way merge on conflict · admin arbitration UI on the desktop.' }, ].map(x => (
{x.t}
{x.d}
))}
); } function PhoneMock() { return (
{/* Status bar */}
09:41 OFFLINE●●●
{/* App header */}
Field Survey · v3.4
KA-LIS · Parcel Verification
{/* Mini map */}
{/* parcels */} {[ [20,30,50,40],[70,30,40,60],[110,30,60,50], [20,70,50,45],[70,90,55,50],[130,80,45,55], [20,115,60,55],[80,140,55,50],[135,135,45,50], ].map((p, i) => ( ))} {/* road */} {/* current position */}
{/* Form */}
Survey Form
Survey No.
142/3B
Owner
Ramesh K.
GPS (RTK)
12.9716° N, 77.5946° E
±1.2cm
); } // ------------------ Section: Analytics ------------------ function AnalyticsSection() { return (
Section 05 · Spatial Analytics

Fifteen ready-to-run analyses, plus a visual model builder for custom pipelines.

Compose analyses as reusable models. Chain buffer → overlay → statistics → export in a single graph. Publish as a service, schedule nightly, or expose as a REST endpoint for other systems.

{window.ANALYTICS.map((a, i) => (
{a.name}
{('0'+(i+1)).slice(-2)} · analysis
))}
Model Builder
Wire inputs, analyses and outputs into a repeatable geoprocessing pipeline.
Publish any model as a scheduled job, an API endpoint, or a mobile task. Version-controlled, parameter-driven, with full lineage from source to output.
{/* pipeline diagram */} {[ { x: 20, y: 90, l: 'Parcels', c: '#5a9adc' }, { x: 20, y: 30, l: 'LULC', c: '#5a9adc' }, { x: 130, y: 30, l: 'Buffer 15km', c: '#e8a33d' }, { x: 130, y: 90, l: 'Intersect', c: '#e8a33d' }, { x: 240, y: 60, l: 'Statistics', c: '#e8a33d' }, { x: 350, y: 60, l: 'Report', c: '#7bc38c' }, ].map((n,i) => ( {n.l} ))} {/* connections */} {[ [60,30,90,30], [60,90,90,90], [170,30,200,60], [170,90,200,60], [280,60,310,60], [90,30,90,90] // fork indicator ].map((c,i) => ( ))}
); } function AnalyticIcon({ kind }) { const common = { fill: 'none', stroke: '#0a1a35', strokeWidth: 1.2, strokeLinecap: 'round' }; const s = { width: 40, height: 40 }; const shapes = { buffer: <>, overlay: <>, proximity: <>, hotspot: <>, density: <>, suit: <>, route: <>, catch: <>, hydro: <>, slope: <>, visib: <>, net: <>, }; return {shapes[kind]}; } // ------------------ Section: Dashboard ------------------ function DashboardSection() { const now = { day: 'Wed 15 Jul 2026', time: '10:02 IST' }; const assets = window.DASHBOARD_ASSET_STATUS; const assetTotal = assets.reduce((s, a) => s + a.value, 0); return (
Section 06 · Dashboards

A single operations picture — KPIs, live incidents, asset health and field teams, on the geography.

Executive, GIS, utility and incident dashboards built from the same spatial data. Every tile drills into the map. Configure per role, pin to a wall display, or export to a scheduled brief.

{/* Dashboard chrome */}
State GIS Command · Executive View
{window.DASHBOARD_TYPES.slice(0, 6).map((t, i) => ( {t} ))}
{now.day} · {now.time} · LIVE
{/* KPI row */}
{window.DASHBOARD_KPIS.map(k => (
{k.label}
{k.value}
{k.delta}
))}
{/* Main grid: choropleth map · charts · incident feed */}
{/* Choropleth */}
Regional Load · Feature Density choropleth · 36 states
{(window.INDIA_STATES || []).map((s, i) => { const seed = ((i * 2654435761) % 100) / 100; const val = 0.18 + seed * 0.82; const fill = `rgba(217,119,6,${(0.12 + val * 0.72).toFixed(2)})`; return ; })} {window.CITIES.filter(c => c.tier === 'metro').map(c => ( ))}
Low
High
{/* Middle column: asset donut + regions */}
Asset Status{assetTotal.toLocaleString()}
{assets.map(a => (
{a.label} {a.value.toLocaleString()}
))}
Top Regions · Load %
{window.DASHBOARD_REGIONS.map(r => (
{r.name}
{r.load}
))}
{/* Incident feed */}
Live Incident Feed{window.DASHBOARD_INCIDENTS.length} OPEN
{window.DASHBOARD_INCIDENTS.map((inc, i) => (
{inc.time}
{inc.type}
{inc.place}
{inc.sev}
))}
{/* Dashboard type chips */}
Prebuilt boards {window.DASHBOARD_TYPES.map(t => ( {t} Dashboard ))}
); } // Donut chart atom (for dashboard asset status) function Donut({ segments, total, size = 90 }) { const r = size / 2 - 8; const c = 2 * Math.PI * r; let offset = 0; return ( {segments.map((s, i) => { const frac = s.value / total; const dash = frac * c; const el = ( ); offset += dash; return el; })} {Math.round((segments[0].value / total) * 100)}% healthy ); } // ------------------ Section: IoT ------------------ function IoTSection() { return (
Section 07 · IoT & Live Sensing

Ten sensor classes plumbed in — from river gauges to smart meters — visualized against your geography in real time.

MQTT and REST ingestion, edge pre-processing, and geographic aggregation. IoT points can trigger workflows, populate dashboards, or feed AI models.

{[ { name: 'River Monitoring', count: '284', unit: 'gauges', trend: [40,42,44,50,58,72,88,95,98,92] }, { name: 'Rainfall Stations', count: '1,204',unit: 'stations', trend: [20,22,28,42,60,72,68,58,50,45] }, { name: 'Air Quality', count: '412', unit: 'sensors', trend: [60,58,55,50,52,55,62,68,72,70] }, { name: 'Weather Stations', count: '820', unit: 'stations', trend: [45,48,50,52,50,48,50,55,58,54] }, { name: 'Smart Meters', count: '18,240',unit:'meters', trend: [30,35,42,50,55,62,70,72,68,74] }, { name: 'Vehicle Tracking', count: '4,120',unit: 'devices', trend: [50,55,60,58,62,68,72,68,60,58] }, { name: 'CCTV Feeds', count: '2,340',unit: 'feeds', trend: [40,45,48,50,52,55,58,60,62,64] }, { name: 'Dam Monitoring', count: '58', unit: 'dams', trend: [30,32,38,52,72,88,92,94,88,72] }, { name: 'Traffic Sensors', count: '3,204',unit: 'loops', trend: [20,28,50,72,68,62,58,64,72,50] }, { name: 'Soil Moisture', count: '918', unit: 'sensors', trend: [55,58,60,58,55,50,48,50,55,60] }, ].map(s => (
{s.name}
{s.count} {s.unit}
))}
); } // ------------------ Section: Integrations ------------------ function IntegrationsSection() { return (
Section 08 · Enterprise Integration

Speaks to your existing enterprise stack — SAP, SCADA, BIM, IoT, DMS, SIEM and every OGC service.

No rip-and-replace. BhooChitra sits at the spatial center of your enterprise, exchanging data through REST, GraphQL, OGC services, and message queues.

BhooChitra Core Spatial Data Hub
{window.INTEGRATIONS.map(n => (
{n.name} {n.kind}
))} {/* SVG connectors */} {window.INTEGRATIONS.map((n,i) => ( ))}
{[ { l: 'OGC Services', v: 'WMS · WFS · WMTS · CSW · WCS · WPS · SensorThings · SLD' }, { l: 'APIs', v: 'REST · GraphQL · Webhooks · gRPC · MQTT · Kafka' }, { l: 'Authentication', v: 'SSO · SAML · OAuth 2.0 · LDAP / AD · MFA · Digital Signature' }, { l: 'Data Exchange', v: 'STAC · CKAN · OpenAPI · gpkg · GeoParquet · GeoJSON-LD' }, ].map(x => (
{x.l}
{x.v}
))}
); } // ------------------ Section: Deployment ------------------ function DeploymentSection() { return (
Section 09 · Deployment

Deploy on any perimeter you require — sovereign cloud, on-premise, or fully air-gapped edge.

Same code, same features, different perimeters. Certified for MeitY and NIC Cloud; ships with an offline installer for defense and critical infrastructure.

{window.DEPLOYMENTS.map(d => (

{d.name}

{d.desc}

    {d.items.map(i =>
  • {i}
  • )}
))}
); } // ------------------ Section: Security ------------------ function SecuritySection() { return (
Section 10 · Security & Access Control

Hardened for government and defense — zero-trust access, encryption everywhere, and an immutable audit trail.

Every read, edit and export is authenticated, authorized down to the field, encrypted in transit and at rest, and written to a tamper-evident log that streams to your SIEM.

{/* Capability cards */}
{window.SECURITY.map(s => (
{s.name} {s.spec}
{s.desc}
))}
{/* Right rail: RBAC matrix + audit console */}
Role · Permission Matrix RBAC
{window.SECURITY_PERMS.map(p => {p})}
{window.SECURITY_ROLES.map(r => (
{r.role} {r.perms.map((allowed, i) => ( {allowed ? '✓' : '·'} ))}
))}
Audit Log · Live Stream tail -f
{window.SECURITY_AUDIT.map((a, i) => (
{a.time} {a.st === 'ok' ? '●' : a.st === 'warn' ? '▲' : '✕'} {a.user} {a.action}
))}
{[ { k: 'AES-256', v: 'encryption at rest · rotating KMS' }, { k: 'TLS 1.3', v: 'mutual TLS between all services' }, { k: '100%', v: 'MFA coverage on privileged roles' }, { k: 'RPO 15m', v: 'geo-redundant backup & failover' }, ].map(s => (
{s.k}
{s.v}
))}
); } // ------------------ Section: Reporting ------------------ function ReportingSection() { return (
Section 11 · Reporting & Export

From live map to signed, print-ready report — cartographic layouts, atlases, and scheduled briefs.

Compose PDF map reports, thematic maps and statistical rollups against live queries. Schedule delivery to email or DMS, and export to every GIS and office format your workflow needs.

{/* Report document preview */}
GOVERNMENT OF KARNATAKA · REVENUE DEPARTMENT
Encroachment Survey Report
KA-LIS-2026-Q2 · Taluk: Bengaluru North · Generated 15 Jul 2026
भू
{[[20,18,54,40],[80,14,46,34],[132,20,60,30],[198,16,50,40],[20,64,60,44],[86,54,54,46],[146,56,52,48],[204,60,60,44],[20,116,70,30],[96,106,60,36],[162,112,54,30],[222,108,50,36]].map((r,i)=>( ))}
◆ Encroachment flagged · 2 parcels · 5.9 ha
{[ ['Survey Nos. reviewed', '1,842'], ['Encroachments detected', '37'], ['Area under encroachment', '182.4 ha'], ['Field-verified', '29 / 37'], ].map(([k, v]) => (
{k}{v}
))}
Digitally signed · PKI eSign A. Sharma, Dy. Commissioner
{/* Report types + formats + schedule */}
{window.REPORT_TYPES.map(r => (
{r.name}
{r.desc}
))}
Export Formats
{window.REPORT_FORMATS.map(f => {f})}
Scheduled Reports
{window.REPORT_SCHEDULE.map(s => (
{s.name}
{s.cadence} · {s.fmt}
NEXT {s.next}
))}
); } // ------------------ Section: Compliance ------------------ function ComplianceSection() { return (
Section 12 · Standards & Compliance

Built for Indian e-governance, aligned with international geospatial and security standards.

The platform is audited, empanelled, and certified against the standards your compliance office is likely to ask about. Documentation and audit trails are available on request.

{window.COMPLIANCE.map(b => (
{b.code}
{b.title}
{b.desc}
))}
); } // ------------------ Section: Tech Stack ------------------ function TechStackSection() { return (
Section 13 · Technology Stack

A stack chosen for longevity, openness, and Indian sovereignty — no proprietary black boxes.

Open-source at the core, backed by paid enterprise support where it matters. Runs identically on developer laptops, sovereign clouds, and defense hardware.

{window.TECH_STACK.map(row => (
{row.label}
{row.chips.map(c => {c})}
))}
); } // ------------------ Section: Use Cases ------------------ function UseCaseSection() { return (
Section 14 · Deployed Use Cases

In production across state governments, utilities, forest departments and defense HQs.

Every deployment is configured, not customized. New projects launch in weeks, not quarters — because the modules are already built and the standards are already met.

{window.USE_CASES.map(u => (
{u.tag}
{u.title}
{u.desc}
))}
); } function UseCaseMini({ idx }) { // Vary a mini illustration const id = parseInt(idx.slice(-2)) || 1; return ( {id === 1 && ( {[[10,10,30,20],[45,10,25,25],[75,10,35,15],[115,10,20,30],[140,10,25,20],[170,10,25,25], [10,35,20,20],[35,40,30,15],[70,30,25,25],[100,45,25,10],[130,35,30,20],[165,40,30,15]].map((r,i)=>( ))} )} {id === 2 && ( {[...Array(80)].map((_,i)=>{ const x = (i % 20) * 10, y = Math.floor(i/20) * 15; return ; })} )} {id === 3 && ( )} {id === 4 && ( {[[30,40],[70,25],[120,42],[160,30]].map((p,i)=>( ))} )} {id === 5 && ( {[[20,20],[50,15],[80,25],[110,20],[140,15],[170,25]].map((p,i)=>( ))} )} {id === 6 && ( {/* contour terrain */} {[10,20,30,40,50].map(o => ( ))} )} ); } // ------------------ Section: Industries ------------------ function IndustriesSection() { return (
Section 15 · Industries Served

Twenty-nine industries running BhooChitra — from panchayat to national command.

Configurable to the vocabulary of each sector: revenue records for land officers, network tracing for utility engineers, viewshed for defense planners.

{window.INDUSTRIES.map((n, i) => (
{('0'+(i+1)).slice(-2)}{n}
))}
); } // ------------------ Footer ------------------ function Footer() { return (
भू
BhooChitra GIS V3
Enterprise Geospatial Platform

BhooChitra is an enterprise-grade GIS built for the scale of Indian government, defense, utility and smart-city programmes. OGC-compliant, AI-native, and deployable inside your perimeter.

Platform

  • Modules
  • Analytics
  • GeoAI
  • 3D & Digital Twin
  • Mobile GIS
  • Integrations

Deployment

  • On-Premise
  • Sovereign Cloud
  • Air-Gapped
  • Edge
  • Sizing Guide
  • Support SLAs

Company

  • Documentation
  • Compliance Statements
  • Empanelments
  • Case Studies
  • Contact Sales
  • Partner Program
© 2026 BhooChitra Technologies · Made in India v3.4.1 · Build 2026.07.11 · SHA e8a33dcf MeitY empanelled · STQC certified · ISO 27001
); } window.DocSections = DocSections;