| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Compiler & ISA · NWO ASM</title> |
| <link rel="icon" type="image/png" href="phi.png"> |
| <link href="https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700&family=IBM+Plex+Mono:wght@300;400;500;600&family=Chakra+Petch:wght@300;400;500&display=swap" rel="stylesheet"> |
| <style> |
| :root{ |
| --bg:#000;--bg2:#070707;--ink:#fff;--muted:#8c8c8c;--dim:#4a4a4a;--faint:#1c1c1c; |
| --line:rgba(255,255,255,.12);--line2:rgba(255,255,255,.26); |
| --panel:rgba(255,255,255,.022);--panel2:rgba(255,255,255,.045); |
| --disp:'Orbitron',sans-serif;--robo:'Chakra Petch',sans-serif;--mono:'IBM Plex Mono',monospace; |
| --sidebar:280px; |
| } |
| *{margin:0;padding:0;box-sizing:border-box} |
| html{scroll-behavior:smooth} |
| body{background:var(--bg);color:var(--ink);font-family:var(--robo);font-weight:300;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden} |
| a{color:inherit;text-decoration:none}::selection{background:#fff;color:#000} |
| .mono{font-family:var(--mono)} |
|
|
| /* ===== layout ===== */ |
| .shell{display:flex;min-height:100vh} |
| .sidebar{width:var(--sidebar);flex:0 0 var(--sidebar);border-right:1px solid var(--line);background:var(--bg2);position:fixed;top:0;left:0;height:100vh;overflow-y:auto;transition:transform .28s ease;z-index:60} |
| .sidebar.collapsed{transform:translateX(calc(-1 * var(--sidebar)))} |
| .main{flex:1;margin-left:var(--sidebar);transition:margin-left .28s ease;width:calc(100% - var(--sidebar))} |
| .main.full{margin-left:0;width:100%} |
| @media(max-width:900px){.sidebar{transform:translateX(calc(-1 * var(--sidebar)))}.sidebar.collapsed{transform:translateX(0)}.main{margin-left:0;width:100%}} |
|
|
| /* ===== sidebar content ===== */ |
| .sb-head{padding:22px 22px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:13px} |
| .sb-head img{width:36px;height:36px;border:1px solid var(--line2);border-radius:8px} |
| .sb-head .t{font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:3px} |
| .sb-head .s{font-family:var(--mono);font-size:8.5px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-top:2px} |
| .sb-group{padding:16px 14px 4px} |
| .sb-group-t{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--dim);text-transform:uppercase;padding:6px 10px} |
| .sb-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;color:var(--muted);font-size:13.5px;letter-spacing:.4px;transition:all .18s;margin:1px 0} |
| .sb-link svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.4;flex:0 0 16px} |
| .sb-link:hover{background:var(--panel2);color:#fff} |
| .sb-link.active{background:rgba(255,255,255,.06);color:rgba(255,255,255,.78)} |
| .sb-foot{padding:18px 22px;border-top:1px solid var(--line);font-family:var(--mono);font-size:9px;color:var(--dim);line-height:1.8;letter-spacing:.5px} |
|
|
| /* ===== topbar ===== */ |
| .topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:13px 26px;border-bottom:1px solid var(--line);background:rgba(0,0,0,.78);backdrop-filter:blur(12px)} |
| .menu-btn{display:flex;align-items:center;gap:9px;background:transparent;border:1px solid var(--line2);border-radius:8px;color:#fff;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:9px 13px;cursor:pointer;transition:all .2s} |
| .menu-btn:hover{background:#fff;color:#000} |
| .menu-btn .bars{display:flex;flex-direction:column;gap:3px} |
| .menu-btn .bars span{width:14px;height:1.5px;background:currentColor;display:block} |
| .topbar .tb-right{display:flex;gap:9px;align-items:center} |
| .wallet-btn{background:transparent;color:#fff;border:1px solid var(--line2);border-radius:8px;font-family:var(--mono);font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:9px 16px;cursor:pointer;transition:all .2s} |
| .wallet-btn:hover{background:#fff;color:#000} |
| .tb-pill{font-family:var(--mono);font-size:9px;letter-spacing:1px;color:var(--muted);border:1px solid var(--line);border-radius:20px;padding:6px 12px;text-transform:uppercase} |
|
|
| /* ===== hero video ===== */ |
| .hero{position:relative;width:100%;height:clamp(560px,88vh,920px);overflow:hidden;border-bottom:1px solid var(--line);background:#000} |
| .hero video{position:absolute;top:-8%;left:0;width:100%;height:116%;object-fit:cover;opacity:.5;will-change:transform} |
| .hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 0%,rgba(0,0,0,.55) 100%),linear-gradient(180deg,rgba(0,0,0,.3) 0%,transparent 30%,transparent 60%,rgba(0,0,0,.9) 100%)} |
| .hero-inner{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 24px} |
| .hero-phi{width:50px;height:50px;border:1px solid var(--line2);border-radius:12px;margin-bottom:22px;opacity:0;animation:rise .9s .1s forwards} |
| .hero-over{font-family:var(--disp);font-weight:400;font-size:clamp(20px,3.6vw,42px);letter-spacing:clamp(3px,1.2vw,14px);text-transform:uppercase;line-height:1.14;opacity:0;animation:rise .9s .25s forwards} |
| .hero-over b{font-weight:700} |
| .hero-sub{font-family:var(--mono);font-size:clamp(8px,1.1vw,10px);letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-top:15px;opacity:0;animation:rise .9s .45s forwards} |
| @keyframes rise{to{opacity:1;transform:translateY(0)}} |
| .hero-phi,.hero-over,.hero-sub{transform:translateY(16px)} |
|
|
| /* ===== code stream strip ===== */ |
| .codestream{border-bottom:1px solid var(--line);background:var(--bg2);padding:16px 26px;overflow:hidden;white-space:nowrap} |
| .codestream .cs-line{font-family:var(--mono);font-size:13px;letter-spacing:.5px;color:#fff;display:inline-block} |
| .codestream .cs-prompt{color:var(--muted)} |
| .codestream .cs-cur{display:inline-block;width:8px;height:15px;background:#fff;margin-left:2px;vertical-align:-2px;animation:blink 1s steps(1) infinite} |
| @keyframes blink{50%{opacity:0}} |
|
|
| /* ===== content ===== */ |
| .content{max-width:1280px;margin:0 auto;padding:56px 34px 100px} |
| .sec-tag{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:12px} |
| .sec-tag::before{content:"";width:26px;height:1px;background:var(--line2)} |
| h2{font-family:var(--disp);font-weight:400;font-size:clamp(22px,3.4vw,34px);letter-spacing:1px;margin-bottom:12px} |
| h2 b{font-weight:700} |
| .intro{font-size:16px;color:#bcbcbc;max-width:780px;margin-bottom:14px} |
| .intro b{color:#fff;font-weight:500} |
|
|
| /* ===== feature nav boxes — gradient thin borders ===== */ |
| .feat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:30px} |
| @media(max-width:1100px){.feat-grid{grid-template-columns:repeat(2,1fr)}} |
| @media(max-width:560px){.feat-grid{grid-template-columns:1fr}} |
| .feat{position:relative;border-radius:15px;padding:1px;background:linear-gradient(135deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.05) 45%,rgba(0,0,0,0) 100%);transition:transform .2s} |
| .feat:hover{transform:translateY(-3px)} |
| .feat:hover .feat-in{background:#0a0a0a} |
| .feat-in{background:#000;border-radius:14px;padding:24px 22px;height:100%;display:flex;flex-direction:column} |
| .feat-ic{width:42px;height:42px;border:1px solid var(--line2);border-radius:10px;display:grid;place-items:center;margin-bottom:16px} |
| .feat-ic svg{width:21px;height:21px;stroke:#fff;fill:none;stroke-width:1.2} |
| .feat h3{font-family:var(--disp);font-weight:500;font-size:15px;letter-spacing:1px;margin-bottom:8px} |
| .feat p{font-size:13px;color:var(--muted);line-height:1.6;flex:1} |
| .feat .st{margin-top:14px;font-family:var(--mono);font-size:8.5px;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:14px;align-self:flex-start} |
| .st.live{border:1px solid #fff;color:#fff} |
| .st.beta{border:1px solid var(--line2);color:var(--muted)} |
| .st.road{border:1px dashed var(--line2);color:var(--dim)} |
| .feat .go{margin-top:13px;font-family:var(--mono);font-size:9px;letter-spacing:1.5px;color:var(--dim);text-transform:uppercase;display:flex;align-items:center;gap:6px} |
| .feat:hover .go{color:#fff} |
|
|
| /* ===== strip ===== */ |
| .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:34px 0} |
| @media(max-width:760px){.strip{grid-template-columns:repeat(2,1fr)}} |
| .strip .c{background:#000;padding:22px 18px;text-align:center} |
| .strip .v{font-family:var(--disp);font-size:24px;font-weight:600} |
| .strip .l{font-family:var(--mono);font-size:8.5px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-top:6px} |
|
|
| .callout{border:1px solid var(--line);border-left:2px solid var(--line2);border-radius:11px;background:var(--panel);padding:18px 20px;margin:26px 0;font-family:var(--mono);font-size:11.5px;color:var(--muted);line-height:1.8} |
| .callout b{color:#fff} |
| /* ===== flow diagram ===== */ |
| .flowwrap{border:1px solid var(--line2);border-radius:16px;background:var(--panel);padding:26px;margin:26px 0;overflow-x:auto} |
| .flowwrap svg{width:100%;min-width:760px;height:auto;display:block} |
| /* ===== terminal ui ===== */ |
| .term{border:1px solid var(--line2);border-radius:13px;background:#040404;overflow:hidden;margin:24px 0;box-shadow:0 0 40px rgba(0,0,0,.6)} |
| .term-bar{display:flex;align-items:center;gap:8px;padding:11px 15px;border-bottom:1px solid var(--line);background:var(--bg2)} |
| .term-bar .dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--line2)} |
| .term-bar .t{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-left:8px} |
| .term-body{padding:18px;font-family:var(--mono);font-size:12.5px;line-height:1.75;min-height:230px;max-height:340px;overflow-y:auto} |
| .term-body .ln{white-space:pre-wrap;word-break:break-word} |
| .term-body .pr{color:var(--muted)} |
| .term-body .ok{color:#fff} |
| .term-body .dim{color:var(--dim)} |
| .term-input{display:flex;align-items:center;gap:9px;border-top:1px solid var(--line);padding:12px 15px} |
| .term-input .ps{font-family:var(--mono);font-size:12.5px;color:var(--muted)} |
| .term-input input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-family:var(--mono);font-size:12.5px} |
| .foot{margin-top:46px;padding-top:24px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;color:var(--dim);line-height:1.9} |
|
|
| .page-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:6px;flex-wrap:wrap} |
| .page-title h1{font-family:var(--disp);font-weight:500;font-size:clamp(22px,3vw,32px);letter-spacing:2px} |
| .page-title .badge{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;padding:5px 10px;border-radius:14px;border:1px solid var(--line2);color:var(--muted);text-transform:uppercase} |
| .page-lead{font-size:14.5px;color:#bcbcbc;max-width:780px;margin-bottom:22px;line-height:1.65} |
| .page-lead b{color:#fff;font-weight:500} |
| .sec-tag{font-family:var(--mono);font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin:42px 0 12px;display:flex;align-items:center;gap:12px} |
| .sec-tag::before{content:"";width:24px;height:1px;background:var(--line2)} |
| h2.s{font-family:var(--disp);font-weight:400;font-size:clamp(20px,3vw,28px);letter-spacing:1px;margin-bottom:12px} |
| h2.s b{font-weight:700} |
| .p{font-size:14px;color:#c0c0c0;margin:8px 0 12px;line-height:1.66;max-width:820px} |
| .p b{color:#fff;font-weight:500} |
| .callout{border:1px solid var(--line);border-left:2px solid var(--line2);border-radius:11px;background:var(--panel);padding:16px 18px;margin:18px 0;font-family:var(--mono);font-size:11.5px;color:var(--muted);line-height:1.75} |
| .callout b{color:#fff} |
| .callout.strong{border-left-color:#fff;background:var(--panel2)} |
|
|
| /* gradient-bordered cards (line-only) */ |
| .gcards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin:14px 0 8px} |
| .gcards.cols3{grid-template-columns:repeat(3,1fr)} |
| .gcards.cols2{grid-template-columns:repeat(2,1fr)} |
| @media(max-width:980px){.gcards.cols3,.gcards.cols2{grid-template-columns:repeat(2,1fr)}} |
| @media(max-width:620px){.gcards.cols3,.gcards.cols2{grid-template-columns:1fr}} |
| .gcard{position:relative;padding:1px;border-radius:14px;background:linear-gradient(135deg,rgba(255,255,255,.45) 0%,rgba(255,255,255,.04) 50%,rgba(0,0,0,0) 100%);transition:transform .18s} |
| .gcard:hover{transform:translateY(-2px)} |
| .gcard-in{background:#000;border-radius:13px;padding:20px;height:100%;display:flex;flex-direction:column} |
| .gcard .ic{width:38px;height:38px;border:1px solid var(--line2);border-radius:10px;display:grid;place-items:center;margin-bottom:14px} |
| .gcard .ic svg{width:19px;height:19px;stroke:#fff;fill:none;stroke-width:1.2} |
| .gcard h3{font-family:var(--disp);font-weight:500;font-size:14px;letter-spacing:1px;margin-bottom:8px} |
| .gcard p{font-size:13px;color:var(--muted);line-height:1.6;flex:1} |
| .gcard .st{margin-top:14px;font-family:var(--mono);font-size:8.5px;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:14px;align-self:flex-start} |
| .st.live{border:1px solid #fff;color:#fff} |
| .st.beta{border:1px solid var(--line2);color:var(--muted)} |
| .st.road{border:1px dashed var(--line2);color:var(--dim)} |
|
|
| /* flow diagram wrapper */ |
| .flowwrap{border:1px solid var(--line2);border-radius:16px;background:var(--panel);padding:24px;margin:18px 0;overflow-x:auto} |
| .flowwrap svg{width:100%;height:auto;display:block} |
| .flowwrap svg.h{min-width:760px} |
| .flowwrap svg.v{min-width:420px;max-width:680px;margin:0 auto} |
|
|
| /* code block */ |
| .code{background:#040404;border:1px solid var(--line2);border-radius:11px;padding:18px 20px;font-family:var(--mono);font-size:12.5px;color:#e6e6e6;line-height:1.7;overflow-x:auto;margin:14px 0} |
| .code .c{color:var(--dim)} |
| .code .k{color:#fff} |
| .code .o{color:#9a9a9a} |
| .code .label{font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;margin-bottom:6px;display:block} |
|
|
| /* stats strip */ |
| .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:22px 0} |
| @media(max-width:760px){.strip{grid-template-columns:repeat(2,1fr)}} |
| .strip .c{background:#000;padding:18px 14px;text-align:center} |
| .strip .v{font-family:var(--disp);font-size:22px;font-weight:600} |
| .strip .l{font-family:var(--mono);font-size:8.5px;letter-spacing:1.5px;color:var(--muted);text-transform:uppercase;margin-top:5px} |
|
|
| /* tech-stack table */ |
| table.tech{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px} |
| table.tech th,table.tech td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top} |
| table.tech th{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);font-weight:500} |
| table.tech td{color:#c4c4c4} |
| table.tech td b{color:#fff;font-weight:500} |
| table.tech td code{font-family:var(--mono);font-size:11.5px;color:#fff;background:rgba(255,255,255,.05);padding:1px 6px;border-radius:4px} |
|
|
| /* step list (vertical) */ |
| .steps{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:var(--panel);margin:14px 0} |
| .step{display:flex;gap:18px;padding:18px 20px;border-bottom:1px solid var(--line)} |
| .step:last-child{border-bottom:none} |
| .step .n{font-family:var(--disp);font-size:18px;font-weight:600;color:#fff;flex:0 0 36px} |
| .step .b h4{font-family:var(--disp);font-weight:500;font-size:13.5px;letter-spacing:.8px;margin-bottom:5px} |
| .step .b p{font-size:13px;color:var(--muted);line-height:1.6;margin:0} |
| .step .b .code{margin-top:10px} |
|
|
| /* shared script chrome */ |
| </style> |
| </head> |
| <body> |
| <div class="shell"> |
| <aside class="sidebar" id="sidebar"> |
| <div class="sb-head"> |
| <img src="phi.png" alt="phi"> |
| <div><div class="t">NWO ASM</div><div class="s">Neural Wave Operator</div></div> |
| </div> |
|
|
| <div class="sb-group"> |
| <div class="sb-group-t">Overview</div> |
| <a class="sb-link" href="index.html"><svg viewBox="0 0 24 24"><path d="M3 12l9-9 9 9M5 10v10h14V10"/></svg>Home</a> |
| <a class="sb-link" href="architecture.html"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg>Architecture</a> |
| <a class="sb-link" href="how-to.html"><svg viewBox="0 0 24 24"><path d="M12 2L2 7l10 5 10-5-10-5zM2 17l10 5 10-5M2 12l10 5 10-5"/></svg>How-To & Examples</a> |
| <a class="sb-link" href="configuration.html"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19 12a7 7 0 0 0-.1-1l2-1.6-2-3.4-2.4 1a7 7 0 0 0-1.7-1L16 2H8l-.8 2.9a7 7 0 0 0-1.7 1l-2.4-1-2 3.4 2 1.6a7 7 0 0 0 0 2l-2 1.6 2 3.4 2.4-1a7 7 0 0 0 1.7 1L8 22h8l.8-2.9a7 7 0 0 0 1.7-1l2.4 1 2-3.4-2-1.6a7 7 0 0 0 .1-1z"/></svg>Configuration</a> |
| </div> |
|
|
| <div class="sb-group"> |
| <div class="sb-group-t">Build</div> |
| <a class="sb-link active" href="compiler.html"><svg viewBox="0 0 24 24"><path d="M16 18l6-6-6-6M8 6l-6 6 6 6"/></svg>Compiler & ISA</a> |
| <a class="sb-link" href="portals.html"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="9"/><ellipse cx="12" cy="12" rx="4" ry="9"/><path d="M3 12h18"/></svg>Portals</a> |
| <a class="sb-link" href="terminal.html"><svg viewBox="0 0 24 24"><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M6 9l3 3-3 3M13 15h5"/></svg>Terminal</a> |
| </div> |
|
|
| <div class="sb-group"> |
| <div class="sb-group-t">Network</div> |
| <a class="sb-link" href="metastate.html"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><circle cx="12" cy="12" r="9"/><path d="M12 3v3m0 12v3M3 12h3m12 0h3"/></svg>MetaState Link</a> |
| <a class="sb-link" href="affiliate.html"><svg viewBox="0 0 24 24"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/></svg>Affiliate & Earn</a> |
| <a class="sb-link" href="agent.md"><svg viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></svg>agent.md</a> |
| </div> |
|
|
| <div class="sb-foot"> |
| v4.0 · static substrate<br> |
| MIT — free to build on<br> |
| USDC settlement on Base |
| </div> |
| </aside> |
| <div class="main" id="main"> |
| <div class="topbar"> |
| <button class="menu-btn" id="menuBtn"><span class="bars"><span></span><span></span><span></span></span> Menu</button> |
| <div class="tb-right"> |
| <span class="tb-pill" id="netPill">Base · 8453</span> |
| <button class="wallet-btn" id="walletBtn">Connect Wallet</button> |
| </div> |
| </div> |
| |
| <div class="content"> |
| <div class="page-title"> |
| <h1>Compiler & ISA</h1> |
| <span class="badge">v4.0 · pipeline</span> |
| </div> |
| <p class="page-lead">The NWO-ASM compiler lowers a single source program into the <b>Process-Matrix IR</b>, then routes each block through the MetaState optimizer to its best substrate target. Multi-stage by design: parse, lower, optimize, schedule, emit. Targets are pluggable — and writing the language itself is <b>free, MIT-licensed</b>, with no platform lock-in.</p> |
|
|
| <div class="callout strong"> |
| <b>HONEST STATUS</b> · The CPU / GPU / QPU emission paths are live. The EVM-target backend (so EVM chains can invoke NWO-ASM computations and receive verified results back) is <b>design-complete, integration in progress</b>; the cross-chain quantum-secured bridge is <b>roadmap</b>. Nothing here is claimed before it is shipped. |
| </div> |
|
|
| |
| <div class="sec-tag">Pipeline</div> |
| <h2 class="s">Compilation as a <b>routed pipeline</b></h2> |
| <p class="p">Each stage produces a typed artifact handed to the next. The optimizer chooses substrate placement after IR lowering, using free-energy minimisation across substrate cost models.</p> |
| <div class="flowwrap"> |
| <svg class="h" viewBox="0 0 980 360" xmlns="http://www.w3.org/2000/svg" font-family="IBM Plex Mono, monospace"> |
| <defs> |
| <marker id="ca" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L7,3 L0,6 Z" fill="#fff"/></marker> |
| <marker id="cad" markerWidth="9" markerHeight="9" refX="7" refY="3" orient="auto" markerUnits="strokeWidth"><path d="M0,0 L7,3 L0,6 Z" fill="#5a5a5a"/></marker> |
| </defs> |
|
|
| |
| <rect x="14" y="148" width="150" height="74" rx="11" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="30" y="170" fill="#4a4a4a" font-size="8" letter-spacing="1.4">01 · SOURCE</text> |
| <text x="30" y="192" fill="#fff" font-size="12.5" font-weight="500">.nwo file</text> |
| <text x="30" y="208" fill="#9a9a9a" font-size="10">process matrices</text> |
|
|
| <path d="M164,185 L196,185" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
|
|
| |
| <rect x="198" y="148" width="150" height="74" rx="11" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="214" y="170" fill="#4a4a4a" font-size="8" letter-spacing="1.4">02 · PARSE</text> |
| <text x="214" y="192" fill="#fff" font-size="12.5" font-weight="500">AST</text> |
| <text x="214" y="208" fill="#9a9a9a" font-size="10">typed syntax tree</text> |
|
|
| <path d="M348,185 L380,185" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
|
|
| |
| <rect x="382" y="148" width="160" height="74" rx="11" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="398" y="170" fill="#4a4a4a" font-size="8" letter-spacing="1.4">03 · LOWER</text> |
| <text x="398" y="192" fill="#fff" font-size="12.5" font-weight="500">Process-Matrix IR</text> |
| <text x="398" y="208" fill="#9a9a9a" font-size="10">.pmx</text> |
|
|
| <path d="M542,185 L574,185" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
|
|
| |
| <rect x="576" y="148" width="160" height="74" rx="11" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="592" y="170" fill="#4a4a4a" font-size="8" letter-spacing="1.4">04 · OPTIMIZE</text> |
| <text x="592" y="192" fill="#fff" font-size="12.5" font-weight="500">MetaState route</text> |
| <text x="592" y="208" fill="#9a9a9a" font-size="10">free-energy choice</text> |
|
|
| |
| <path d="M736,168 C780,168 780,40 820,40" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
| <path d="M736,178 C780,178 780,98 820,98" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
| <path d="M736,188 C780,188 780,156 820,156" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
| <path d="M736,196 C780,196 780,214 820,214" stroke="#fff" stroke-width="1.2" fill="none" marker-end="url(#ca)"/> |
| <path d="M736,204 C780,204 780,272 820,272" stroke="#5a5a5a" stroke-width="1.2" fill="none" stroke-dasharray="4 3" marker-end="url(#cad)"/> |
| <path d="M736,212 C780,212 780,322 820,322" stroke="#5a5a5a" stroke-width="1.2" fill="none" stroke-dasharray="4 3" marker-end="url(#cad)"/> |
|
|
| <rect x="822" y="22" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="836" y="43" fill="#fff" font-size="11.5">LLVM → CPU</text> |
| <text x="945" y="43" fill="#fff" font-size="8" text-anchor="end">LIVE</text> |
|
|
| <rect x="822" y="80" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="836" y="101" fill="#fff" font-size="11.5">PTX/HIP → GPU</text> |
| <text x="945" y="101" fill="#fff" font-size="8" text-anchor="end">LIVE</text> |
|
|
| <rect x="822" y="138" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="836" y="159" fill="#fff" font-size="11.5">QASM3 → QPU</text> |
| <text x="945" y="159" fill="#fff" font-size="8" text-anchor="end">LIVE</text> |
|
|
| <rect x="822" y="196" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.35)" stroke-width="1"/> |
| <text x="836" y="217" fill="#fff" font-size="11.5">ECG-hive · BCI</text> |
| <text x="945" y="217" fill="#9a9a9a" font-size="8" text-anchor="end">BETA</text> |
|
|
| <rect x="822" y="254" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.15)" stroke-width="1" stroke-dasharray="4 3"/> |
| <text x="836" y="275" fill="#9a9a9a" font-size="11.5">EVM bytecode</text> |
| <text x="945" y="275" fill="#5a5a5a" font-size="8" text-anchor="end">DESIGN</text> |
|
|
| <rect x="822" y="306" width="140" height="34" rx="8" fill="#000" stroke="rgba(255,255,255,.15)" stroke-width="1" stroke-dasharray="4 3"/> |
| <text x="836" y="327" fill="#9a9a9a" font-size="11.5">Photonic · Neuro</text> |
| <text x="945" y="327" fill="#5a5a5a" font-size="8" text-anchor="end">ROADMAP</text> |
|
|
| <text x="14" y="350" fill="#4a4a4a" font-size="8" letter-spacing="1.4">SOLID = LIVE TARGET · DASHED = NOT YET SHIPPED · MIT-LICENSED COMPILER · NO PLATFORM LOCK-IN</text> |
| </svg> |
| </div> |
|
|
| |
| <div class="sec-tag">Features</div> |
| <h2 class="s">Six pieces of the <b>compiler</b></h2> |
| <div class="gcards cols3"> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><path d="M3 6h18M3 12h12M3 18h18"/></svg></div> |
| <h3>Multi-stage</h3> |
| <p>Parse → AST → Process-Matrix IR → optimized IR → target emission. Each stage is inspectable and replaceable.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><circle cx="12" cy="12" r="9"/><path d="M12 3v3m0 12v3M3 12h3m12 0h3"/></svg></div> |
| <h3>MetaState routing</h3> |
| <p>The optimizer evaluates a free-energy bound across substrate cost models to choose per-block placement.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><path d="M13 2L3 14h7l-1 8 10-12h-7z"/></svg></div> |
| <h3>Optimization passes</h3> |
| <p>Dead-code elimination, causal-coherence scheduling, kernel fusion, and substrate-aware tiling on the IR.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></svg></div> |
| <h3>Post-quantum signing</h3> |
| <p>Compiled artifacts can be signed with CRYSTALS-Dilithium so the binary's provenance is verifiable on-chain.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg></div> |
| <h3>Multi-backend</h3> |
| <p>One source emits to LLVM (CPU), PTX/HIP (GPU), or QASM3 (QPU). ECG-hive backend is BETA. EVM-target is design-complete.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| <div class="gcard"><div class="gcard-in"> |
| <div class="ic"><svg viewBox="0 0 24 24"><circle cx="12" cy="12" r="2"/><path d="M12 2v6M12 16v6M2 12h6M16 12h6M5 5l4 4M15 15l4 4M5 19l4-4M15 9l4-4"/></svg></div> |
| <h3>Agent-native</h3> |
| <p>Compile, sign, and dispatch from an autonomous agent loop. The terminal exposes the full pipeline as commands.</p> |
| <span class="st live">Live</span> |
| </div></div> |
| </div> |
|
|
| |
| <div class="sec-tag">Worked example</div> |
| <h2 class="s">From <b>source</b> to <b>QASM3</b> + USDC settlement</h2> |
| <p class="p">A minimal NWO-ASM program that scores an anomaly signal with the symbolic regressor, then lifts the residual to a 2-qubit process matrix the optimizer can route to a QPU when present, with a classical fallback. Per-call settlement is automatic.</p> |
|
|
| <span class="label">signal.nwo · source</span> |
| <pre class="code"><span class="c"># anomaly score on a 1-D signal, fit symbolic residual, route best path</span> |
| <span class="k">module</span> signal { |
| <span class="k">input</span> s : f32[8192] |
| <span class="k">output</span> r : pmx[2] <span class="c"># 2-qubit process matrix</span> |
|
|
| <span class="k">let</span> v = anomaly.score(s) <span class="c"># free-energy bound</span> |
| <span class="k">let</span> e = eml.regress(s, v) <span class="c"># closed-form residual</span> |
| r = pmx.lift(e) <span class="c"># causal-coherence channel</span> |
|
|
| <span class="k">route</span> r <span class="o">via</span> metastate { |
| <span class="o">prefer</span>: qpu <span class="c"># IBM or Origin Wukong if available</span> |
| <span class="o">fallback</span>: gpu <span class="c"># otherwise nwo-agi distributed GPU</span> |
| <span class="o">settle</span>: usdc(base) <span class="c"># per-call, via splitter — no new contract</span> |
| } |
| }</pre> |
|
|
| <span class="label">terminal · compile and emit</span> |
| <pre class="code"><span class="c"># compile and inspect IR</span> |
| nwo-asm build signal.nwo --emit pmx,qasm3 |
| <span class="c">→ signal.pmx</span> |
| <span class="c">→ signal.qasm3</span> |
|
|
| <span class="c"># sign and dispatch (settles in USDC on Base)</span> |
| nwo-asm dispatch signal.qasm3 --backend qpu --wallet $WALLET |
| <span class="c">→ dispatched to backend = qpu(origin_wukong) · proof = 0xPOI…</span> |
| <span class="c">→ settled $0.0008 USDC · split 35/35/30 · affiliate (if set) +15%</span></pre> |
|
|
| |
| <div class="sec-tag">ISA reference</div> |
| <h2 class="s">Core instruction set <b>(stable)</b></h2> |
| <table class="tech"> |
| <tr><th>Op</th><th>Signature</th><th>Notes</th></tr> |
| <tr><td><b>anomaly.score</b></td><td><code>f32[N] → f32</code></td><td>Free-energy anomaly metric on a signal.</td></tr> |
| <tr><td><b>eml.regress</b></td><td><code>(f32[N], f32) → expr</code></td><td>Closed-form symbolic regression.</td></tr> |
| <tr><td><b>pmx.lift</b></td><td><code>expr → pmx[k]</code></td><td>Lift a symbolic expression into a k-qubit process matrix.</td></tr> |
| <tr><td><b>route</b></td><td><code>pmx, policy → handle</code></td><td>Defer placement to the MetaState optimizer.</td></tr> |
| <tr><td><b>poi.verify</b></td><td><code>handle → proof</code></td><td>Proof of Inference; signed (PQC) and optionally zk.</td></tr> |
| <tr><td><b>anchor</b></td><td><code>proof → tx</code></td><td>Prepare keccak256 calldata to settle on Base.</td></tr> |
| </table> |
|
|
| |
| <div class="sec-tag">Tech stack</div> |
| <h2 class="s">What it's <b>built on</b></h2> |
| <table class="tech"> |
| <tr><th>Layer</th><th>Tech</th><th>Status</th></tr> |
| <tr><td><b>Parser / IR</b></td><td><code>Rust</code> · tree-sitter grammar · custom Process-Matrix IR</td><td>Live</td></tr> |
| <tr><td><b>Optimizer</b></td><td>MetaState kernel · free-energy bound across substrate cost models</td><td>Live</td></tr> |
| <tr><td><b>CPU target</b></td><td>LLVM 17 lowering · x86 / ARM / RISC-V</td><td>Live</td></tr> |
| <tr><td><b>GPU target</b></td><td>PTX (CUDA) · HIP (ROCm) · Metal · nwo-agi distributed mesh</td><td>Live</td></tr> |
| <tr><td><b>QPU target</b></td><td>OpenQASM 3.0 emission · Qiskit Runtime · Origin QPanda</td><td>Live</td></tr> |
| <tr><td><b>Signing</b></td><td>CRYSTALS-Dilithium (PQC) · proof-of-inference attestation</td><td>Live</td></tr> |
| <tr><td><b>Settlement</b></td><td>Existing MetaStateSplitter on Base · 35/35/30 + 15% affiliate</td><td>Live · no new contract</td></tr> |
| <tr><td><b>EVM target</b></td><td>EVM bytecode emission for on-chain hooks · Solidity ABI surface</td><td>Design-complete</td></tr> |
| <tr><td><b>Cross-chain bridge</b></td><td>Quantum-secured message relay between chains and NWO-ASM</td><td>Roadmap</td></tr> |
| <tr><td><b>Photonic / neuromorphic / DNA / crystalline</b></td><td>Backend interfaces specified; pending hardware integration</td><td>Roadmap</td></tr> |
| </table> |
|
|
| <div class="callout"> |
| <b>Licensing.</b> The compiler, ISA, and reference toolchain are <b>MIT</b>. Build on it, fork it, embed it, ship it — no royalty, no lock-in. Only the connectors that touch live external compute carry per-call USDC settlement. |
| </div> |
|
|
| <div style="display:flex;gap:10px;flex-wrap:wrap;margin-top:24px"> |
| <a href="terminal.html" style="font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:13px 22px;border:1px solid var(--line2);border-radius:9px;background:#fff;color:#000">Open terminal</a> |
| <a href="how-to.html" style="font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:13px 22px;border:1px solid var(--line2);border-radius:9px;color:#fff">How-to & examples</a> |
| <a href="architecture.html" style="font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;padding:13px 22px;border:1px solid var(--line2);border-radius:9px;color:#fff">Architecture</a> |
| </div> |
| </div> |
|
|
| </div> |
| </div> |
|
|
| <script> |
| const sidebar=document.getElementById('sidebar'); |
| const main=document.getElementById('main'); |
| const menuBtn=document.getElementById('menuBtn'); |
| const wide=window.matchMedia('(min-width:901px)'); |
| menuBtn.addEventListener('click',()=>{ |
| if(wide.matches){ sidebar.classList.toggle('collapsed'); main.classList.toggle('full'); } |
| else { sidebar.classList.toggle('collapsed'); } |
| }); |
| const walletBtn=document.getElementById('walletBtn'); |
| function pickProvider(){const e=window.ethereum;if(!e)return null;if(Array.isArray(e.providers))return e.providers.find(p=>p.isMetaMask)||e.providers[0];return e;} |
| walletBtn.addEventListener('click',async()=>{ |
| const p=pickProvider(); |
| if(!p){ walletBtn.textContent='No wallet found'; return; } |
| try{ |
| const a=await p.request({method:'eth_requestAccounts'}); |
| walletBtn.textContent=a[0].slice(0,6)+'…'+a[0].slice(-4); |
| document.getElementById('netPill').textContent='Connected · Base'; |
| }catch(e){ walletBtn.textContent='Connection refused'; } |
| }); |
| </script> |
|
|
| </body> |
| </html> |