Repository navigation
Expand file tree
/
Copy pathdocs.html
More file actions
279 lines (262 loc) · 13.6 KB
/
Copy pathdocs.html
File metadata and controls
279 lines (262 loc) · 13.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Documentation hub for the HydroCouple ecosystem: interface definitions, SDK, Open-Source SWMM 6.0 engine, Python bindings, Gymnasium environments, and MCP tooling.">
<meta name="author" content="Caleb Buahin">
<title>Documentation | HydroCouple</title>
<link href="img/hydrocouple.png" rel="icon">
<link href="css/fonts.css" rel="stylesheet">
<link href="css/site.css" rel="stylesheet">
<style>
/* Docs-hub cards: icon + title + blurb + link list. Add a new doc set by copying one .doc-card. */
.doc-card { display: flex; flex-direction: column; }
.doc-card .doc-icon {
width: 52px; height: 52px; border-radius: 12px; display: flex; align-items: center;
justify-content: center; margin-bottom: 16px; flex-shrink: 0;
}
.doc-card .doc-icon svg { width: 28px; height: 28px; }
.doc-links { list-style: none; margin-top: auto; padding-top: 14px; display: grid; gap: 6px; }
.doc-links li a {
display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
padding: 8px 12px; border: 1px solid var(--line); border-radius: 8px; font-size: 0.92rem;
font-weight: 500;
}
.doc-links li a:hover { background: var(--mist); }
.doc-links li a .kind { font-size: 0.75rem; color: var(--ink-soft); font-weight: 400; white-space: nowrap; }
</style>
</head>
<body>
<nav class="nav">
<div class="nav-inner">
<a class="nav-brand" href="index.html"><img src="img/hydrocouple.png" alt="HydroCouple logo">HydroCouple</a>
<button class="nav-toggle" aria-label="Menu" onclick="document.getElementById('navlinks').classList.toggle('open')">☰</button>
<ul class="nav-links" id="navlinks">
<li><a href="index.html">Home</a></li>
<li><a href="standards.html">Standards</a></li>
<li><a href="ecosystem.html">Ecosystem</a></li>
<li><a href="articles.html">Articles</a></li>
<li><a href="publications.html">Publications</a></li>
<li><a href="docs.html" class="active">Docs</a></li>
<li><a class="cta" href="https://github.com/hydrocouple">GitHub</a></li>
</ul>
</div>
</nav>
<header class="hero">
<div class="container">
<span class="hero-kicker">Reference · Guides · APIs</span>
<h1>Documentation</h1>
<p class="lede">
Every layer of the ecosystem, documented: the interface definitions that make coupling
possible, the SDK for building components, and the Open-Source SWMM 6.0 (SWMM2D) engine
with its Python, real-time control, and agent tooling.
</p>
</div>
<svg class="hero-wave" viewBox="0 0 1440 70" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="none" aria-hidden="true">
<path d="M0,40 C240,70 480,8 720,30 C960,52 1200,20 1440,44 L1440,70 L0,70 Z" fill="#fafcfd"/>
</svg>
</header>
<section>
<div class="container">
<div class="section-kicker">The standard</div>
<h2>Framework & component development</h2>
<div class="grid cols-2">
<!-- HydroCouple Interface Definitions -->
<div class="card doc-card">
<div class="doc-icon" style="background:#d9edff">
<!-- plug/coupling icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#0071bf" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M9 7 L9 3 M15 7 L15 3"/>
<path d="M6 7 L18 7 L18 11 A6 6 0 0 1 6 11 Z"/>
<path d="M12 17 L12 21"/>
<path d="M12 17 A4 4 0 0 0 12 17"/>
<path d="M12 13 L12 17"/>
</svg>
</div>
<h3>HydroCouple Interface Definitions</h3>
<p>The C++ specification at the heart of the framework: component lifecycle, exchange
items, geospatial data types, time semantics, and HPC interfaces.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/HydroCouple/">API Reference <span class="kind">Doxygen</span></a></li>
<li><a href="https://www.hydrocouple.org/HydroCouple/python/">Python Bindings <span class="kind">Sphinx</span></a></li>
<li><a href="https://github.com/HydroCouple/HydroCouple">Source Repository <span class="kind">GitHub</span></a></li>
</ul>
</div>
<!-- SDK -->
<div class="card doc-card">
<div class="doc-icon" style="background:#ece8f6">
<!-- toolbox icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#7a6ea8" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<rect x="3" y="8" width="18" height="12" rx="2"/>
<path d="M8 8 V6 a2 2 0 0 1 2-2 h4 a2 2 0 0 1 2 2 v2"/>
<path d="M3 13 h18"/>
<path d="M10 13 v2 h4 v-2"/>
</svg>
</div>
<h3>HydroCouple SDK</h3>
<p>Base implementations of the interface definitions so wrapping a model starts from working code, the fastest path to a conforming component.</p>
<ul class="doc-links">
<li><a href="https://github.com/HydroCouple/HydroCoupleSDK">Source & Guides <span class="kind">GitHub</span></a></li>
<li><a href="https://github.com/HydroCouple/HydroCoupleComposer/releases">Composer Installers <span class="kind">Releases</span></a></li>
</ul>
</div>
</div>
</div>
</section>
<section class="alt">
<div class="container">
<div class="section-kicker">The flagship</div>
<h2>Open-Source SWMM 6.0 (SWMM2D)</h2>
<div class="grid cols-2">
<!-- Engine -->
<div class="card doc-card">
<div class="doc-icon" style="background:#fdf0dc">
<!-- gear/engine icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#c77b16" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<circle cx="12" cy="12" r="3.2"/>
<path d="M12 2.5 L12 5 M12 19 L12 21.5 M2.5 12 L5 12 M19 12 L21.5 12 M5.3 5.3 L7 7 M17 17 L18.7 18.7 M18.7 5.3 L17 7 M7 17 L5.3 18.7"/>
</svg>
</div>
<h3>Engine · C / C++ API</h3>
<p>Full C API reference, hydrology, hydraulics, and water-quality reference manuals,
user manual, and architecture notes for the next-generation computational engine.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/openswmm.engine/">Engine Documentation <span class="kind">Reference</span></a></li>
<li><a href="https://github.com/HydroCouple/openswmm.engine">Source Repository <span class="kind">GitHub</span></a></li>
<li><a href="https://github.com/HydroCouple/openswmm.engine/blob/main/ROADMAP.md">Roadmap <span class="kind">Markdown</span></a></li>
</ul>
</div>
<!-- Python -->
<div class="card doc-card">
<div class="doc-icon" style="background:#dff2e7">
<!-- python-ish snake icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#2e8b57" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M12 3 h3 a3 3 0 0 1 3 3 v3 a3 3 0 0 1 -3 3 h-6 a3 3 0 0 0 -3 3 v3 a3 3 0 0 0 3 3 h3"/>
<circle cx="14.5" cy="6.5" r="0.9" fill="#2e8b57" stroke="none"/>
<circle cx="9.5" cy="17.5" r="0.9" fill="#2e8b57" stroke="none"/>
</svg>
</div>
<h3>Python Bindings</h3>
<p>Quickstart, per-domain user guide, Cython API reference, and the SWMM 5 → v6
migration guide for the <span class="code-tag">openswmm</span> package.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/openswmm.engine/python/">Python Documentation <span class="kind">Guide + API</span></a></li>
<li><a href="https://pypi.org/project/openswmm">Package <span class="kind">PyPI</span></a></li>
</ul>
</div>
<!-- GUI -->
<div class="card doc-card">
<div class="doc-icon" style="background:#e6f4f1">
<!-- desktop / map icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#2a8f80" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<rect x="2.5" y="4" width="19" height="13" rx="2"/>
<path d="M9 21 h6 M12 17 v4"/>
<path d="M6 13.5 L9.5 9 L12.5 12 L15 8.5 L18 13.5"/>
</svg>
</div>
<h3>Desktop Application</h3>
<p>The cross-platform modeling environment: map editing, 2D mesh generation, scenario
management, result visualization, and profile and comparison plotting.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/openswmm.gui/">Application Documentation <span class="kind">Reference</span></a></li>
<li><a href="https://github.com/HydroCouple/openswmm.gui">Source Repository <span class="kind">GitHub</span></a></li>
</ul>
</div>
<!-- Gymnasium -->
<div class="card doc-card">
<div class="doc-icon" style="background:#e8f0fb">
<!-- RL / control loop icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#3b6fb5" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M4 12 a8 8 0 1 1 2.4 5.7"/>
<path d="M4 18 L4 12 L10 12" />
<circle cx="12" cy="12" r="2" fill="#3b6fb5" stroke="none"/>
</svg>
</div>
<h3>Gymnasium Environments</h3>
<p>Real-time control environments over the engine for smart stormwater operations: standard Gymnasium APIs, benchmark scenarios, and optimization workflows.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/openswmm.gymnasium/">Environment Documentation <span class="kind">Guide + API</span></a></li>
<li><a href="https://github.com/HydroCouple/openswmm.gymnasium">Source Repository <span class="kind">GitHub</span></a></li>
</ul>
</div>
<!-- Benchmarks -->
<div class="card doc-card">
<div class="doc-icon" style="background:#d9edff">
<!-- target/verification icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#0071bf" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<circle cx="12" cy="12" r="9"/>
<circle cx="12" cy="12" r="5"/>
<circle cx="12" cy="12" r="1.2" fill="#0071bf" stroke="none"/>
<path d="M12 3 L12 5.5 M12 18.5 L12 21 M3 12 L5.5 12 M18.5 12 L21 12"/>
</svg>
</div>
<h3>Benchmarks Platform</h3>
<p>The open verification and regression-testing platform: 1,396 benchmark models, exact
analytical solutions, mass-balance and stability sweeps, and the public dashboard
tracking every engine.</p>
<ul class="doc-links">
<li><a href="https://github.com/HydroCouple/openswmm.engine.benchmarks">Docs & Source <span class="kind">GitHub</span></a></li>
<li><a href="https://www.hydrocouple.org/openswmm.engine.benchmarks/">Results Dashboard <span class="kind">Live</span></a></li>
</ul>
</div>
<!-- MCP -->
<div class="card doc-card">
<div class="doc-icon" style="background:#f6e8f0">
<!-- agent/chat icon -->
<svg viewBox="0 0 24 24" fill="none" stroke="#b0447c" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
<path d="M4 6 a2 2 0 0 1 2-2 h12 a2 2 0 0 1 2 2 v8 a2 2 0 0 1 -2 2 h-9 l-4 4 v-4 h-1 a2 2 0 0 1 -2-2 Z"/>
<circle cx="9" cy="10" r="0.9" fill="#b0447c" stroke="none"/>
<circle cx="12.5" cy="10" r="0.9" fill="#b0447c" stroke="none"/>
<circle cx="16" cy="10" r="0.9" fill="#b0447c" stroke="none"/>
</svg>
</div>
<h3>MCP Agent Tooling</h3>
<p>The Model Context Protocol server for LLM-driven modeling: tool catalog, agent
skills, and workflows for building, running, and analyzing models with AI agents.</p>
<ul class="doc-links">
<li><a href="https://www.hydrocouple.org/openswmm.mcp/">Server Documentation <span class="kind">Guide + API</span></a></li>
<li><a href="https://github.com/HydroCouple/openswmm.mcp">Source Repository <span class="kind">GitHub</span></a></li>
</ul>
</div>
</div>
<p class="section-intro mt-3" style="margin-bottom:0">
More documentation sets, including component developer guides and FVQual, will appear here as they mature. Each is one card: icon,
summary, links.
</p>
</div>
</section>
<footer>
<div class="container">
<div class="footer-grid">
<div>
<h4>HydroCouple</h4>
<p style="font-size:0.92rem; max-width:44ch">
The enabling architectures for innovation in water modeling: open interface definitions, data standards, and computational engines. The integration layer for digital public water infrastructure and home of the Open-Source SWMM initiative.
</p>
</div>
<div>
<h4>Project</h4>
<ul>
<li><a href="standards.html">Standards</a></li>
<li><a href="ecosystem.html">Ecosystem</a></li>
<li><a href="articles.html">Articles</a></li>
<li><a href="publications.html">Publications</a></li>
<li><a href="docs.html">Documentation</a></li>
</ul>
</div>
<div>
<h4>Connect</h4>
<ul>
<li><a href="https://github.com/hydrocouple">GitHub</a></li>
<li><a href="mailto:caleb.buahin@gmail.com">Email</a></li>
</ul>
</div>
</div>
<div class="footer-note">
© 2014–2026 HydroCouple.
</div>
</div>
</footer>
</body>
</html>