|
| 1 | +<!doctype html> |
| 2 | +<html lang="en"> |
| 3 | +<head> |
| 4 | +<meta charset="utf-8"> |
| 5 | +<meta name="viewport" content="width=device-width,initial-scale=1"> |
| 6 | +<title>Riverside Mill Complex — Case Study · BlueprintAgentic</title> |
| 7 | +<meta name="description" content="Full campus technology stack for a 240,000 sq ft multi-tenant commercial and light manufacturing facility. Agentic transformations, network, security, power, and a 250-ton agentic water-source heat pump HVAC system with full energy recycling."> |
| 8 | +<link rel="icon" href="../assets/logos/favicon.ico"> |
| 9 | +<link rel="stylesheet" href="../css/style.css"> |
| 10 | +<style> |
| 11 | +.cs-hero { padding-block: clamp(2.5rem, 5vw, 4rem); } |
| 12 | +.cs-hero .back { |
| 13 | + font-family: var(--mono); |
| 14 | + font-size: 0.78rem; |
| 15 | + color: var(--text-faint); |
| 16 | + letter-spacing: 0.02em; |
| 17 | + margin-bottom: 1.25rem; |
| 18 | + display: inline-flex; align-items: center; gap: 0.4rem; |
| 19 | +} |
| 20 | +.cs-hero .back:hover { color: var(--accent); } |
| 21 | +.cs-hero h1 { |
| 22 | + font-size: clamp(2rem, 3.8vw, 2.85rem); |
| 23 | + font-weight: 500; |
| 24 | + letter-spacing: -0.02em; |
| 25 | + line-height: 1.15; |
| 26 | + margin-bottom: 1.25rem; |
| 27 | +} |
| 28 | +.cs-hero .tagline { |
| 29 | + font-size: 1.0625rem; |
| 30 | + line-height: 1.55; |
| 31 | + color: var(--text); |
| 32 | + margin-bottom: 1.25rem; |
| 33 | + font-weight: 500; |
| 34 | + letter-spacing: -0.005em; |
| 35 | + max-width: none; |
| 36 | +} |
| 37 | +.cs-hero .sub { font-size: 0.95rem; color: var(--text-soft); line-height: 1.55; margin-bottom: 0.75rem; max-width: none; } |
| 38 | + |
| 39 | +.figure-section { |
| 40 | + padding-block: clamp(2rem, 4vw, 3rem); |
| 41 | +} |
| 42 | +.figure-row { |
| 43 | + display: grid; |
| 44 | + grid-template-columns: 1fr 1fr; |
| 45 | + gap: 1.25rem; |
| 46 | +} |
| 47 | +@media (max-width: 820px) { .figure-row { grid-template-columns: 1fr; } } |
| 48 | +.figure { |
| 49 | + background: var(--bg-raised); |
| 50 | + border: 1px solid var(--rule); |
| 51 | + padding: 1rem; |
| 52 | + overflow: hidden; |
| 53 | + box-shadow: 0 20px 60px -30px rgba(9,31,56,0.18); |
| 54 | +} |
| 55 | +.figure img { width: 100%; display: block; height: auto; } |
| 56 | +.figure .cap { |
| 57 | + display: flex; justify-content: space-between; gap: 1rem; |
| 58 | + margin-top: 0.8rem; |
| 59 | + font-family: var(--mono); |
| 60 | + font-size: 0.75rem; |
| 61 | + color: var(--text-soft); |
| 62 | + padding-top: 0.8rem; |
| 63 | + border-top: 1px dashed var(--rule); |
| 64 | +} |
| 65 | +.figure .cap .label { color: var(--text); font-weight: 500; } |
| 66 | + |
| 67 | +.cs-section { |
| 68 | + padding-block: clamp(2rem, 4vw, 3rem); |
| 69 | + border-bottom: 1px solid var(--rule); |
| 70 | +} |
| 71 | +.cs-section:last-of-type { border-bottom: none; } |
| 72 | +.cs-section:has(+ .figure-section) { border-bottom: none; padding-bottom: 0.5rem; } |
| 73 | +.cs-section h2 { font-size: clamp(1.5rem, 2.6vw, 1.95rem); font-weight: 500; letter-spacing: -0.02em; margin-bottom: 1rem; } |
| 74 | +.cs-section h3 { font-size: 1rem; font-weight: 600; letter-spacing: -0.01em; margin-top: 1.5rem; margin-bottom: 0.5rem; color: var(--text); } |
| 75 | +.cs-section p { max-width: 70ch; margin-bottom: 0.75rem; color: var(--text-soft); font-size: 0.95rem; line-height: 1.55; } |
| 76 | +.cs-section p b { color: var(--text); font-weight: 600; } |
| 77 | +.cs-section ul { margin: 0.5rem 0 1rem 1.25rem; max-width: 70ch; } |
| 78 | +.cs-section ul li { margin-bottom: 0.4rem; color: var(--text-soft); font-size: 0.95rem; line-height: 1.55; } |
| 79 | +.cs-section ul li b { color: var(--text); font-weight: 600; } |
| 80 | +</style> |
| 81 | +</head> |
| 82 | +<body> |
| 83 | + |
| 84 | +<header class="nav"> |
| 85 | + <div class="wrap inner"> |
| 86 | + <a class="brand" href="../index.html" aria-label="BlueprintAgentic"> |
| 87 | + <img src="../assets/logos/wordmark-blue.png" alt="Blueprint"> |
| 88 | + <span class="after">Agentic</span> |
| 89 | + </a> |
| 90 | + <ul> |
| 91 | + <li><a href="../index.html#services">Services</a></li> |
| 92 | + <li><a href="../index.html#work">Work</a></li> |
| 93 | + <li><a href="../index.html#leadership">Leadership</a></li> |
| 94 | + </ul> |
| 95 | + <a class="go" href="../index.html#contact">Contact →</a> |
| 96 | + </div> |
| 97 | +</header> |
| 98 | + |
| 99 | +<section class="cs-hero"> |
| 100 | + <div class="wrap"> |
| 101 | + <a class="back" href="../index.html#work">← Work</a> |
| 102 | + <h1>Riverside Mill Complex</h1> |
| 103 | + <p class="tagline">Full campus technology stack for a 240,000 sq ft multi-tenant commercial and light manufacturing facility — a brick former papermill built in the 1890s.</p> |
| 104 | + <p class="sub">One partner across agentic transformation, HVAC, security, power, and IT. Five co-located tenants run daily operations on the systems we designed and built.</p> |
| 105 | + </div> |
| 106 | +</section> |
| 107 | + |
| 108 | +<div class="wrap"> |
| 109 | + |
| 110 | + <div class="cs-section"> |
| 111 | + <h2>Agentic Transformations</h2> |
| 112 | + <p>Implementation and enablement of end-user AI tools for the building's five co-located businesses — Claude Code, ChatGPT Desktop, Microsoft Copilot, and Gemini within Google Workspace. Use cases include camera system management and clip retrieval, access control management with multi-system synchronization, inventory management, data collection and report production for regulatory compliance, regulatory audits, market and regulatory research, customer service automation, email monitoring and routing, and manufacturing production management and forecasting.</p> |
| 113 | + </div> |
| 114 | + |
| 115 | + <div class="cs-section"> |
| 116 | + <h2>250-ton HVAC system</h2> |
| 117 | + <p>A 250-ton water-source heat pump system with full energy recycling for both heating and cooling loads. Heat removed from a tenant space that needs cooling is captured in the building's water loop and delivered, in the same moment, to a tenant space that needs heating. Under typical occupancy the building does not buy much net thermal energy at all — it moves what it already has.</p> |
| 118 | + |
| 119 | + <h3>Mechanical system design and project management.</h3> |
| 120 | + <p>Mechanical and electrical design, hardware specification, and project management of the building-wide HVAC plant serving the general building and all five tenants. Designed, built, installed, and wired in partnership with our plumbing and electrical trades, with us as the integrator from the first sketch through commissioning.</p> |
| 121 | + |
| 122 | + <h3>Control system design and implementation.</h3> |
| 123 | + <p>We specified the control hardware, drew the wiring, and built the panel. Industrial breakers and contactors on the power side; I/O modules addressing the sensor and actuator network; a Raspberry-Pi-based supervisor bridged to the rest over RS-485. The supervisor hosts the agentic control software directly — a multi-agent supervisor that continuously negotiates zone comfort targets, energy cost, outside conditions, and equipment health, then issues setpoints to the controllers. Running 24/7.</p> |
| 124 | + </div> |
| 125 | + |
| 126 | + <div class="figure-section"> |
| 127 | + <div class="figure"> |
| 128 | + <img src="../assets/case-studies/riverside-mill-complex/mechanical-room.png" alt="Mechanical room design — 3D model of the HVAC plant showing main distribution headers, 50 HP circulation pumps, and heat pump units"> |
| 129 | + <div class="cap"> |
| 130 | + <span class="label">Fig. 01 — Mechanical room, 3D design model</span> |
| 131 | + <span>8" Sch 80 PVC headers · 50 HP pumps · 5-micron filtration</span> |
| 132 | + </div> |
| 133 | + </div> |
| 134 | + <div class="figure" style="margin-top:1.25rem"> |
| 135 | + <img src="../assets/case-studies/riverside-mill-complex/board-wiring.png" alt="Control board wiring diagram showing industrial distribution, I/O modules, and the Raspberry Pi controller tied to the heat pump plant via RS-485"> |
| 136 | + <div class="cap"> |
| 137 | + <span class="label">Fig. 02 — Control panel wiring diagram</span> |
| 138 | + <span>Industrial distribution · I/O modules · RS-485 to Pi controller</span> |
| 139 | + </div> |
| 140 | + </div> |
| 141 | + </div> |
| 142 | + |
| 143 | + <div class="cs-section"> |
| 144 | + <h2>Security cameras</h2> |
| 145 | + <p>Before a single camera was installed we produced coverage plans at floor-by-floor and exterior scale. Each camera's field of view was laid out over the architectural drawings so every corridor, entrance, loading dock, and shared space had intentional coverage — and so the gaps were visible and deliberate, not accidental.</p> |
| 146 | + <p>The system combines new common-area cameras with the existing cameras already approved for the site. Same recording infrastructure; same review console; one archive.</p> |
| 147 | + <p>The recording stack runs on enterprise server infrastructure — a Dell server with redundant power and CPU, 100 TB of RAID 5+1 storage, Windows Server on Hyper-V, and Blue Iris as the recording engine with open-source integrations where useful. <b>No NVRs</b> — those fail in exactly the moment you need them.</p> |
| 148 | + <p>The architecture scales to over <b>500 cameras with 90 days of full retention</b>; today it runs over 200, covering every tenant in the building.</p> |
| 149 | + </div> |
| 150 | + |
| 151 | + <div class="figure-section"> |
| 152 | + <div class="figure"> |
| 153 | + <img src="../assets/case-studies/riverside-mill-complex/cameras-exterior.jpg" alt="Exterior camera coverage plan showing placement and coverage cones for cameras around the building perimeter"> |
| 154 | + <div class="cap"> |
| 155 | + <span class="label">Fig. 03 — Exterior camera coverage plan</span> |
| 156 | + <span>Perimeter · parking · loading docks</span> |
| 157 | + </div> |
| 158 | + </div> |
| 159 | + <div class="figure-row" style="margin-top:1.25rem"> |
| 160 | + <div class="figure"> |
| 161 | + <img src="../assets/case-studies/riverside-mill-complex/cameras-floor-1.png" alt="Floor 1 interior camera coverage plan"> |
| 162 | + <div class="cap"> |
| 163 | + <span class="label">Fig. 04 — Floor 1 interior</span> |
| 164 | + <span>Common areas</span> |
| 165 | + </div> |
| 166 | + </div> |
| 167 | + <div class="figure"> |
| 168 | + <img src="../assets/case-studies/riverside-mill-complex/cameras-floor-2.jpg" alt="Floor 2 interior camera coverage plan"> |
| 169 | + <div class="cap"> |
| 170 | + <span class="label">Fig. 05 — Floor 2 interior</span> |
| 171 | + <span>Common areas</span> |
| 172 | + </div> |
| 173 | + </div> |
| 174 | + </div> |
| 175 | + </div> |
| 176 | + |
| 177 | + <div class="cs-section"> |
| 178 | + <h2>Access control</h2> |
| 179 | + <p>Eighteen access control panels covering seventy-two doors across the campus, with card-based entry, tenant-specific profiles, audit logging, and integration with the camera feeds. Tenants administer access for their own spaces; common areas and shared infrastructure are administered centrally.</p> |
| 180 | + </div> |
| 181 | + |
| 182 | + <div class="cs-section"> |
| 183 | + <h2>Security systems</h2> |
| 184 | + <p>Five different security systems from several manufacturers, designed and installed to work together — intrusion, life-safety, environmental, perimeter, and tenant-specific systems. Coordinated on a shared monitoring and response backbone so the building has one operational view across all of them.</p> |
| 185 | + </div> |
| 186 | + |
| 187 | + <div class="cs-section"> |
| 188 | + <h2>IT network</h2> |
| 189 | + <p>Building-wide WiFi and internet access for the general building and all five tenants. Campus-wide managed switching, structured cabling, routers and firewalls, tenant segmentation, and shared metered internet egress. Three data rooms with core services, tenant-shared and tenant-isolated compute, monitoring, and backup.</p> |
| 190 | + </div> |
| 191 | + |
| 192 | + <div class="cs-section"> |
| 193 | + <h2>Power resiliency</h2> |
| 194 | + <p>The campus has three data rooms, each with its own UPS. Behind those UPSes is a battery inverter and a standby generator, coordinated so that — from the servers' perspective — the site never loses power. UPS carries the cutover; batteries take over from the UPS; the generator takes over from the batteries as it comes online.</p> |
| 195 | + <p>The system we inherited ran <b>IT infrastructure and emergency lighting off a single shared backup chain</b>. That arrangement is fragile — a fault in one load can compromise the other — and it does not meet life-safety code, which requires emergency lighting on a dedicated, independently-protected system. We redesigned it as two fully split systems, each correctly engineered for its role.</p> |
| 196 | + </div> |
| 197 | + |
| 198 | + <div class="figure-section"> |
| 199 | + <div class="figure-row"> |
| 200 | + <div class="figure"> |
| 201 | + <img src="../assets/case-studies/riverside-mill-complex/power-present.jpg" alt="As-inherited power schematic showing a single backup chain shared between the data-room UPSes, the emergency lighting panel, and general night-light loads"> |
| 202 | + <div class="cap"> |
| 203 | + <span class="label">Fig. 06 — Inherited state · mixed system</span> |
| 204 | + <span>IT and emergency lighting on one chain</span> |
| 205 | + </div> |
| 206 | + </div> |
| 207 | + <div class="figure"> |
| 208 | + <img src="../assets/case-studies/riverside-mill-complex/power-future.jpg" alt="Redesigned power schematic showing IT infrastructure and emergency lighting split into two fully independent backup systems"> |
| 209 | + <div class="cap"> |
| 210 | + <span class="label">Fig. 07 — Redesigned · split systems</span> |
| 211 | + <span>IT and emergency lighting, fully separated</span> |
| 212 | + </div> |
| 213 | + </div> |
| 214 | + </div> |
| 215 | + </div> |
| 216 | + |
| 217 | +</div> |
| 218 | + |
| 219 | +<footer> |
| 220 | + <div class="wrap inner"> |
| 221 | + <div>BlueprintAgentic · © 2026 · All rights reserved</div> |
| 222 | + <ul> |
| 223 | + <li><a href="https://www.linkedin.com/in/jason-morrissette-6704261b/" target="_blank" rel="noopener">LinkedIn</a></li> |
| 224 | + <li><a href="https://github.com/jmorrissette-RMDC" target="_blank" rel="noopener">GitHub</a></li> |
| 225 | + </ul> |
| 226 | + </div> |
| 227 | +</footer> |
| 228 | + |
| 229 | +</body> |
| 230 | +</html> |
0 commit comments