Last active
February 17, 2026 02:48
-
-
Save wd15/a7d4deef3fbe8feb94627d2130f642f6 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE html> | |
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>AM Digital Twin Architecture v5</title> | |
| <style> | |
| body { | |
| margin: 0; | |
| padding: 20px; | |
| font-family: 'Inter', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; | |
| background-color: #ffffff; | |
| display: flex; | |
| justify-content: center; | |
| align-items: center; | |
| height: 100vh; | |
| } | |
| .diagram-container { | |
| width: 100%; | |
| max-width: 1600px; | |
| aspect-ratio: 16 / 9; | |
| box-shadow: 0 4px 12px rgba(0,0,0,0.1); | |
| border: 1px solid #e0e0e0; | |
| background-color: #ffffff; | |
| } | |
| svg { | |
| width: 100%; | |
| height: 100%; | |
| } | |
| /* SVG Text Styling */ | |
| .title { font-size: 14px; fill: #666; font-weight: bold; letter-spacing: 1px; } | |
| .node-main { font-size: 15px; font-weight: bold; fill: #111; } | |
| .node-sub { font-size: 13px; font-style: italic; fill: #444; } | |
| .edge-label { | |
| font-size: 13px; | |
| fill: #333; | |
| paint-order: stroke; | |
| stroke: #ffffff; | |
| stroke-width: 4px; | |
| stroke-linecap: round; | |
| stroke-linejoin: round; | |
| } | |
| .ai-edge-label { | |
| font-size: 13px; | |
| fill: #7b1fa2; | |
| font-weight: bold; | |
| paint-order: stroke; | |
| stroke: #ffffff; | |
| stroke-width: 4px; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <div class="diagram-container"> | |
| <svg viewBox="0 0 1600 900" xmlns="http://www.w3.org/2000/svg"> | |
| <defs> | |
| <marker id="arrow-solid" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto"> | |
| <path d="M 0 0 L 10 5 L 0 10 z" fill="#444" /> | |
| </marker> | |
| <marker id="arrow-dashed" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto"> | |
| <path d="M 0 0 L 10 5 L 0 10 z" fill="#888" /> | |
| </marker> | |
| <marker id="arrow-ai-end" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto"> | |
| <path d="M 0 0 L 10 5 L 0 10 z" fill="#7b1fa2" /> | |
| </marker> | |
| <marker id="arrow-ai-start" viewBox="0 0 10 10" refX="1" refY="5" markerWidth="6" markerHeight="6" orient="auto"> | |
| <path d="M 10 0 L 0 5 L 10 10 z" fill="#7b1fa2" /> | |
| </marker> | |
| </defs> | |
| <rect x="990" y="40" width="600" height="260" fill="#faf8fc" stroke="#ce93d8" stroke-width="2" stroke-dasharray="8,6" rx="10" /> | |
| <text x="1290" y="70" text-anchor="middle" class="title">AI ORCHESTRATION</text> | |
| <rect x="40" y="380" width="890" height="480" fill="#f0f8ff" stroke="#64b5f6" stroke-width="2" stroke-dasharray="8,6" rx="10" /> | |
| <text x="485" y="410" text-anchor="middle" class="title">DIGITAL TWIN</text> | |
| <rect x="990" y="480" width="600" height="260" fill="#fffaf0" stroke="#ffab91" stroke-width="2" stroke-dasharray="8,6" rx="10" /> | |
| <text x="1290" y="510" text-anchor="middle" class="title">CONTROL</text> | |
| <path d="M 1105 170 L 1230 170" fill="none" stroke="#444" stroke-width="2" marker-end="url(#arrow-solid)" /> | |
| <text x="1167" y="160" text-anchor="middle" class="edge-label">Prompts & Commands</text> | |
| <path d="M 1260 215 C 1260 250, 460 250, 460 660" fill="none" stroke="#7b1fa2" stroke-width="2" stroke-dasharray="6,4" marker-start="url(#arrow-ai-start)" marker-end="url(#arrow-ai-end)" /> | |
| <path d="M 1280 215 C 1280 340, 840 340, 840 520" fill="none" stroke="#7b1fa2" stroke-width="2" stroke-dasharray="6,4" marker-start="url(#arrow-ai-start)" marker-end="url(#arrow-ai-end)" /> | |
| <text x="860" y="325" text-anchor="middle" class="ai-edge-label">Tool Use / State Query</text> | |
| <path d="M 1360 215 C 1360 350, 1100 350, 1100 560" fill="none" stroke="#7b1fa2" stroke-width="2" stroke-dasharray="6,4" marker-start="url(#arrow-ai-start)" marker-end="url(#arrow-ai-end)" /> | |
| <path d="M 1380 215 C 1380 350, 1320 350, 1320 560" fill="none" stroke="#7b1fa2" stroke-width="2" stroke-dasharray="6,4" marker-start="url(#arrow-ai-start)" marker-end="url(#arrow-ai-end)" /> | |
| <text x="1210" y="335" text-anchor="middle" class="ai-edge-label">Control Policies / Override</text> | |
| <path d="M 280 470 L 480 540" fill="none" stroke="#888" stroke-width="2" stroke-dasharray="4,4" marker-end="url(#arrow-dashed)" /> | |
| <text x="360" y="495" text-anchor="middle" class="edge-label">Model Reduction</text> | |
| <path d="M 240 730 L 435 730" fill="none" stroke="#888" stroke-width="2" marker-end="url(#arrow-dashed)" /> | |
| <text x="330" y="722" text-anchor="middle" class="edge-label">Priors</text> | |
| <path d="M 520 655 L 530 620" fill="none" stroke="#444" stroke-width="2" marker-end="url(#arrow-solid)" /> | |
| <text x="480" y="640" text-anchor="middle" class="edge-label">State</text> | |
| <path d="M 570 620 L 560 655" fill="none" stroke="#888" stroke-width="2" stroke-dasharray="4,4" marker-end="url(#arrow-dashed)" /> | |
| <text x="605" y="640" text-anchor="middle" class="edge-label">Forecast</text> | |
| <path d="M 700 570 L 770 570" fill="none" stroke="#888" stroke-width="2" stroke-dasharray="4,4" marker-end="url(#arrow-dashed)" /> | |
| <text x="735" y="562" text-anchor="middle" class="edge-label">Training</text> | |
| <path d="M 600 710 Q 820 710 820 615" fill="none" stroke="#444" stroke-width="2" marker-end="url(#arrow-solid)" /> | |
| <text x="750" y="680" text-anchor="middle" class="edge-label">State Nudge</text> | |
| <path d="M 860 615 Q 860 760 610 760" fill="none" stroke="#888" stroke-width="2" stroke-dasharray="4,4" marker-end="url(#arrow-dashed)" /> | |
| <text x="825" y="735" text-anchor="middle" class="edge-label">Fast Forecast</text> | |
| <path d="M 900 570 C 950 570, 950 610, 1020 610" fill="none" stroke="#444" stroke-width="3" marker-end="url(#arrow-solid)" /> | |
| <text x="965" y="585" text-anchor="middle" class="edge-label" font-weight="bold">Fast Pred</text> | |
| <path d="M 1160 610 L 1250 610" fill="none" stroke="#444" stroke-width="2" marker-end="url(#arrow-solid)" /> | |
| <text x="1205" y="602" text-anchor="middle" class="edge-label">Params</text> | |
| <path d="M 1390 610 L 1460 610" fill="none" stroke="#444" stroke-width="2" marker-end="url(#arrow-solid)" /> | |
| <text x="1425" y="602" text-anchor="middle" class="edge-label">Actuation</text> | |
| <path d="M 1520 650 L 1520 840 L 520 840 L 520 830" fill="none" stroke="#444" stroke-width="3" marker-end="url(#arrow-solid)" /> | |
| <text x="1100" y="830" text-anchor="middle" class="edge-label" font-weight="bold">Observations (y)</text> | |
| <circle cx="1060" cy="170" r="45" fill="#e1bee7" stroke="#8e24aa" stroke-width="2" /> | |
| <text x="1060" y="175" text-anchor="middle" class="node-main">USER</text> | |
| <rect x="1240" y="125" width="220" height="90" rx="8" fill="#f3e5f5" stroke="#8e24aa" stroke-width="2" /> | |
| <text x="1350" y="160" text-anchor="middle" class="node-main">AI AGENT / MCP</text> | |
| <text x="1350" y="185" text-anchor="middle" class="node-sub">Orchestrator</text> | |
| <rect x="60" y="430" width="220" height="80" rx="5" fill="#e0e0e0" stroke="#9e9e9e" stroke-width="2" stroke-dasharray="5,5" /> | |
| <text x="170" y="465" text-anchor="middle" class="node-main">HIGH-FIDELITY MODELS</text> | |
| <text x="170" y="485" text-anchor="middle" class="node-sub">ANSYS / AdditiveFOAM</text> | |
| <path d="M 80,705 C 80,690 240,690 240,705 L 240,755 C 240,770 80,770 80,755 Z" fill="#e0e0e0" stroke="#9e9e9e" stroke-width="2" stroke-dasharray="5,5" /> | |
| <ellipse cx="160" cy="705" rx="80" ry="10" fill="#f5f5f5" stroke="#9e9e9e" stroke-width="2" stroke-dasharray="5,5" /> | |
| <text x="160" y="735" text-anchor="middle" class="node-main">AM-BENCH DB</text> | |
| <text x="160" y="755" text-anchor="middle" class="node-sub">Validation</text> | |
| <circle cx="520" cy="745" r="85" fill="#c8e6c9" stroke="#388e3c" stroke-width="3" /> | |
| <text x="520" y="735" text-anchor="middle" class="node-main">DATA ASSIMILATION</text> | |
| <text x="520" y="760" text-anchor="middle" class="node-sub">TorchDA / EnKF</text> | |
| <rect x="480" y="520" width="220" height="100" rx="5" fill="#bbdefb" stroke="#1976d2" stroke-width="2" /> | |
| <text x="590" y="565" text-anchor="middle" class="node-main">ENSEMBLE MODELS</text> | |
| <text x="590" y="590" text-anchor="middle" class="node-sub">Adamantine / ExaCA</text> | |
| <rect x="780" y="530" width="120" height="80" rx="5" fill="#bbdefb" stroke="#1976d2" stroke-width="2" /> | |
| <text x="840" y="565" text-anchor="middle" class="node-main">SURROGATE</text> | |
| <text x="840" y="585" text-anchor="middle" class="node-sub">FNOs</text> | |
| <path d="M 1040,570 L 1160,570 L 1180,590 L 1180,630 L 1160,650 L 1040,650 L 1020,630 L 1020,590 Z" fill="#fff9c4" stroke="#fbc02d" stroke-width="2" /> | |
| <text x="1100" y="615" text-anchor="middle" class="node-main">OPTIMIZER</text> | |
| <rect x="1250" y="570" width="140" height="80" rx="5" fill="#fff9c4" stroke="#fbc02d" stroke-width="2" /> | |
| <text x="1320" y="615" text-anchor="middle" class="node-main">CONTROLLER</text> | |
| <rect x="1460" y="570" width="120" height="80" rx="5" fill="#ffccbc" stroke="#e64a19" stroke-width="3" /> | |
| <text x="1520" y="605" text-anchor="middle" class="node-main">AM MACHINE</text> | |
| <text x="1520" y="625" text-anchor="middle" class="node-sub">Melt Pool Sensors</text> | |
| </svg> | |
| </div> | |
| </body> | |
| </html> | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment