Spaces:
Running
Running
deploy(hf): sync szl-holdings/a11oy@ac02db5a10e5b3d4c9b2260674111ff2335888bf derived COPY set
55e5019 verified | <html lang="en"><head><meta charset="utf-8"> | |
| <meta name="viewport" content="width=device-width,initial-scale=1"> | |
| <title>a11oy · Verifiable-AI Benchmark — 3-way MEASURED PINN (SZL vs DeepXDE vs NVIDIA PhysicsNeMo)</title> | |
| <meta name="description" content="An honest, measured 3-way physics-informed-neural-network benchmark: SZL governed spectral (CPU) vs DeepXDE (GPU) vs NVIDIA PhysicsNeMo/Modulus (GPU). Every number carries its provenance label; the artifact passes the a11oy honesty gate in CI."> | |
| <!-- SPDX-License-Identifier: Apache-2.0 · © 2026 SZL Holdings · Doctrine v11 · Signed: Forge --> | |
| <style> | |
| :root{--bg:#0a0b10;--panel:#12141d;--panel2:#171a25;--ink:#e8eaf0;--mut:#9aa0b4;--gold:#d9b35c;--line:#252938;--grn:#3fb950;--amb:#d29922;--red:#f85149;--blu:#5cc4bf;} | |
| *{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif} | |
| a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline} | |
| header{border-bottom:1px solid var(--line);padding:14px 22px;display:flex;align-items:center;gap:14px;background:linear-gradient(180deg,#10121b,#0a0b10)} | |
| header .brand{font-weight:700;letter-spacing:.5px;color:var(--gold);font-size:18px} | |
| header .tag{color:var(--mut);font-size:12px} | |
| nav{display:flex;flex-wrap:wrap;gap:8px;padding:10px 22px;border-bottom:1px solid var(--line);background:var(--panel)} | |
| nav a{font-size:12.5px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--mut)} | |
| nav a:hover{border-color:var(--gold);color:var(--gold);text-decoration:none} | |
| nav a.active{background:var(--gold);color:#0a0b10;border-color:var(--gold);font-weight:600} | |
| main{max-width:1080px;margin:0 auto;padding:28px 22px 60px} | |
| h1{font-size:27px;margin:0 0 6px;color:#fff}h2{font-size:18px;margin:30px 0 10px;color:var(--gold)} | |
| .sub{color:var(--mut);margin:0 0 18px;font-size:13.5px} | |
| .hero{background:linear-gradient(180deg,#141826,#0e1119);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:14px 0 8px} | |
| .hero .lede{font-size:15.5px;color:#d8dbe6;max-width:80ch} | |
| .badges{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 2px} | |
| .badge{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--panel2)} | |
| .badge .dot{width:8px;height:8px;border-radius:50%} | |
| .badge.ok{border-color:rgba(63,185,80,.5);color:var(--grn)}.badge.ok .dot{background:var(--grn)} | |
| .badge.info{border-color:rgba(92,196,191,.5);color:var(--blu)}.badge.info .dot{background:var(--blu)} | |
| .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:18px 20px;margin:14px 0} | |
| .meta{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;margin:12px 0} | |
| .meta .m{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:11px 13px} | |
| .meta .m .k{color:var(--mut);font-size:11px;text-transform:uppercase;letter-spacing:.4px} | |
| .meta .m .v{color:var(--ink);font-size:13.5px;margin-top:3px} | |
| table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13.5px} | |
| th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:top} | |
| th{color:var(--mut);font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px} | |
| td .fw{font-weight:600;color:#fff}td .mc{color:var(--mut);font-size:12px} | |
| .num{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px} | |
| .pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600} | |
| .g{background:rgba(63,185,80,.15);color:var(--grn)}.a{background:rgba(210,153,34,.15);color:var(--amb)}.r{background:rgba(248,81,73,.15);color:var(--red)}.n{background:#1c2030;color:var(--mut)}.b{background:rgba(92,196,191,.14);color:var(--blu)} | |
| .note{border-left:3px solid var(--gold);padding:9px 14px;background:rgba(217,179,92,.06);color:#d8dbe6;font-size:13px;margin:12px 0;border-radius:0 8px 8px 0} | |
| .warn{border-left:3px solid var(--amb);background:rgba(210,153,34,.07)} | |
| code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px} | |
| pre{background:#0d0f17;border:1px solid var(--line);border-radius:10px;padding:14px;overflow:auto;color:#cdd3e3} | |
| footer{border-top:1px solid var(--line);color:var(--mut);font-size:11.5px;padding:18px 22px;line-height:1.7;margin-top:30px} | |
| .eq{color:var(--blu)} | |
| .small{font-size:12px;color:var(--mut)} | |
| </style> <link rel="stylesheet" href="/assets/szl-flow.css" data-szl-flow-asset="style" /> | |
| <link rel="stylesheet" href="/assets/szl-holo-v2.css" data-szl-holo-asset="style-v2" /> | |
| </head><body> | |
| <header><span class="brand">a11oy</span><span class="tag">Verifiable AI · every number carries its proof</span></header> | |
| <nav> | |
| <a href="/console">← Console</a><a href="/pinn-console">PINN Console</a> | |
| <a href="/benchmark" class="active">Benchmark</a><a href="/hologram">Command Bridge</a> | |
| <a href="/verify">Verify</a><a href="/assurance">Assurance</a><a href="/company">Company</a> | |
| </nav> | |
| <main> | |
| <div class="hero"> | |
| <h1>One of one — the only governed PDE solver here that actually ships</h1> | |
| <p class="lede">Three arms, three problems, all <b>MEASURED</b> against exact closed forms or synthetic | |
| ground truth: SZL's governed classical spectral solver versus two neural physics-informed networks — | |
| <b>DeepXDE</b> and <b>NVIDIA PhysicsNeMo / Modulus</b>. We publish the config, the seeds, the license | |
| of every dependency, and — most importantly — <b>where this suite does <i>not</i> let us claim | |
| victory.</b> That honesty is the moat.</p> | |
| <p class="lede" style="margin-top:12px;color:#fff">SZL leads the field on the axis that decides real | |
| deployments — <b>verifiable, deployable governed solving</b>. It is the <b>only</b> arm that actually | |
| ships in the product, the <b>only</b> one that is license-clean (Apache-2.0, not LGPL), the | |
| <b>only</b> one re-derived from source in CI on every commit, and it reaches <b>machine precision</b> | |
| where the problem admits it — all measured on <b>our own metal</b>, not a rented cloud GPU farm.</p> | |
| <div class="badges"> | |
| <span class="badge ok"><span class="dot"></span>One of one · only shipped arm</span> | |
| <span class="badge ok"><span class="dot"></span>Apache-2.0 · deployable</span> | |
| <span class="badge ok"><span class="dot"></span>Reproduced from source in CI</span> | |
| <span class="badge info"><span class="dot"></span><span id="metalBadge">Run on our own metal</span></span> | |
| <span class="badge ok"><span class="dot"></span><a href="https://github.com/szl-holdings/a11oy/actions/workflows/pinn-honesty-gate.yml" style="color:inherit">Honesty gate: PASS in CI</a></span> | |
| <span class="badge info"><span class="dot"></span>Doctrine v11 labels</span> | |
| <span class="badge info"><span class="dot"></span>Live artifact · <a href="/api/a11oy/v1/pinn/bench" style="color:inherit">/api/a11oy/v1/pinn/bench</a></span> | |
| </div> | |
| <p class="small" style="margin:10px 0 0">This page renders directly from the committed benchmark artifact — no numbers are typed into the page, | |
| so it cannot drift from the source of truth. The same artifact must pass | |
| <code>benchmarks/pinn/honesty_guard.py</code> before it can ship.</p> | |
| </div> | |
| <section class="card" id="holoWrap" style="padding:0;overflow:hidden;position:relative"> | |
| <div style="padding:16px 20px 6px"> | |
| <h2 style="margin:0">Holographic showcase — the measured field, in 3D</h2> | |
| <p class="small" style="margin:6px 0 0">A live hologram of the artifact: each bar is <b>−log₁₀(error)</b> pulled straight from | |
| <code>/api/a11oy/v1/pinn/bench</code> — taller means more accurate. Gold = SZL governed spectral · muted = the neural PINNs. | |
| No heights are hard-coded; if the numbers change, the hologram changes.</p> | |
| </div> | |
| <canvas id="holo" style="display:block;width:100%;height:420px;background:radial-gradient(circle at 50% 38%,#0e1322,#070810)"></canvas> | |
| <div id="holoLegend" class="small" style="padding:9px 20px 16px;color:var(--mut)">Materialising the measured field…</div> | |
| <noscript><div class="note" style="margin:0 20px 16px">The 3D showcase needs JavaScript; the measured tables below are fully static and complete.</div></noscript> | |
| </section> | |
| <div id="status" class="note">Loading measured results from <code>/api/a11oy/v1/pinn/bench</code>…</div> | |
| <div id="report" hidden> | |
| <h2 id="benchTitle"></h2> | |
| <p class="sub" id="overallLabel"></p> | |
| <div class="meta" id="meta"></div> | |
| <div id="problems"></div> | |
| <h2>How to read this</h2> | |
| <div class="card" id="interpretation"></div> | |
| <h2>What we are <span style="color:var(--red)">not</span> claiming</h2> | |
| <div class="note warn" id="scopeLimits"></div> | |
| <div class="note" id="honesty"></div> | |
| <h2>Reproduce it yourself</h2> | |
| <p class="sub">Nothing here is take-our-word-for-it. The exact commands that produced the artifact:</p> | |
| <pre id="reproduce"></pre> | |
| <p class="small" id="doctrine"></p> | |
| </div> | |
| <h2>Why this benchmark is different</h2> | |
| <div class="card"> | |
| <p style="margin:0 0 10px">Content-provenance tools prove where a <i>file</i> came from. Governance platforms document a | |
| <i>process</i>. Evaluation suites <i>score</i> a model. None of them <b>break the build when a result | |
| overclaims.</b> a11oy does:</p> | |
| <ul style="margin:0;color:#d8dbe6"> | |
| <li>Every reported number is stamped <span class="pill g">MEASURED</span> / <span class="pill b">MODELED</span> / | |
| <span class="pill n">NOT-RUN</span> / <span class="pill n">NOT-MEASURED</span> / <span class="pill n">NOT-TESTED</span>.</li> | |
| <li>A <b>measured</b> number with no evidence, or a <b>not-run</b> arm carrying a value, fails the honesty gate — the artifact cannot ship.</li> | |
| <li>Our advantages are <b>disclosed</b>: e.g. the Poisson solution lives inside SZL's trial basis, so that near-machine-precision result is by construction, not a general-accuracy claim.</li> | |
| </ul> | |
| </div> | |
| <h2>Verify the source</h2> | |
| <div class="card"> | |
| <p style="margin:0 0 10px">This page is public and so is everything behind it. Inspect the code that | |
| produces — and polices — these numbers on the public | |
| <a href="https://github.com/szl-holdings/a11oy">szl-holdings/a11oy</a> repository:</p> | |
| <ul style="margin:0;color:#d8dbe6"> | |
| <li>The measured artifact — | |
| <a href="https://github.com/szl-holdings/a11oy/blob/main/benchmarks/pinn/results.json"><code>benchmarks/pinn/results.json</code></a>, | |
| served read-only at <a href="/api/a11oy/v1/pinn/bench"><code>/api/a11oy/v1/pinn/bench</code></a> (this page renders it — no numbers are typed in).</li> | |
| <li>The benchmark harness — | |
| <a href="https://github.com/szl-holdings/a11oy/blob/main/benchmarks/pinn/run_bench.py"><code>benchmarks/pinn/run_bench.py</code></a>. | |
| The SZL arm is NumPy-only; the DeepXDE / PhysicsNeMo arms are lazy-imported and never shipped.</li> | |
| <li>The honesty gate — | |
| <a href="https://github.com/szl-holdings/a11oy/blob/main/benchmarks/pinn/honesty_guard.py"><code>benchmarks/pinn/honesty_guard.py</code></a> | |
| over the reusable | |
| <a href="https://github.com/szl-holdings/a11oy/tree/main/verifiable-ai"><code>verifiable-ai/</code></a> | |
| core: a MEASURED number with no evidence, or a NOT-RUN arm carrying a value, fails the build.</li> | |
| <li>The reproducibility gate — | |
| <a href="https://github.com/szl-holdings/a11oy/blob/main/benchmarks/pinn/reproduce_szl_guard.py"><code>benchmarks/pinn/reproduce_szl_guard.py</code></a>: | |
| CI re-derives the SZL classical-spectral arm from source and asserts it still matches the published numbers.</li> | |
| <li>The CI itself — | |
| <a href="https://github.com/szl-holdings/a11oy/blob/main/.github/workflows/pinn-honesty-gate.yml"><code>pinn-honesty-gate.yml</code></a> | |
| · <a href="https://github.com/szl-holdings/a11oy/actions/workflows/pinn-honesty-gate.yml">live runs on GitHub Actions</a>.</li> | |
| </ul> | |
| <p class="small" style="margin:10px 0 0">Both gates run on every change before it can reach <code>main</code>: | |
| the labels cannot overclaim, and the classical-arm numbers cannot drift from source. That is what | |
| <b>verifiable</b> means here — not a promise, a build check.</p> | |
| </div> | |
| </main> | |
| <footer> | |
| SPDX-License-Identifier: Apache-2.0 · © 2026 SZL Holdings · a11oy — governed, verifiable AI · Doctrine v11.<br> | |
| Data source: the committed <code>benchmarks/pinn/results.json</code>, served read-only at <code>/api/a11oy/v1/pinn/bench</code>. | |
| DeepXDE (LGPL-2.1) and NVIDIA PhysicsNeMo/Modulus (Apache-2.0) are benchmark-only dev dependencies — never imported by shipped code. | |
| </footer> | |
| <script src="/vendor/three.min.js"></script> | |
| <script> | |
| (function(){ | |
| var FW = { | |
| szl: {name:"SZL", cls:"spectral collocation · CPU", tag:"b"}, | |
| deepxde: {name:"DeepXDE", cls:"neural PINN · GPU", tag:"n"}, | |
| modulus_physicsnemo: {name:"NVIDIA PhysicsNeMo / Modulus", cls:"neural PINN · GPU", tag:"n"} | |
| }; | |
| function esc(s){return String(s==null?"":s).replace(/[&<>]/g,function(c){return {"&":"&","<":"<",">":">"}[c];});} | |
| function fnum(v){ | |
| if(v==null) return "—"; | |
| if(typeof v!=="number") return esc(v); | |
| var a=Math.abs(v); | |
| if(a!==0 && (a<1e-2 || a>=1e4)) return v.toExponential(2); | |
| return (Math.round(v*1e4)/1e4).toString(); | |
| } | |
| function metricCell(arm,metric){ | |
| var v=arm[metric]; | |
| if(v==null) return '<span class="num">—</span>'; | |
| if(typeof v==="object"){ | |
| var m=fnum(v.median), lo=fnum(v.min), hi=fnum(v.max); | |
| return '<span class="num">'+m+'</span> <span class="mc">('+lo+'–'+hi+', n='+esc(v.n)+')</span>'; | |
| } | |
| return '<span class="num">'+fnum(v)+'</span>'; | |
| } | |
| function wallCell(arm){ | |
| var w=arm.wall_s; | |
| if(w==null) return '<span class="mc">—</span>'; | |
| if(typeof w==="object") return '<span class="num">'+fnum(w.median)+'s</span> <span class="mc">('+fnum(w.min)+'–'+fnum(w.max)+')</span>'; | |
| return '<span class="num">'+fnum(w)+'s</span>'; | |
| } | |
| function labelPill(lbl){ | |
| if(!lbl) return ''; | |
| var head=String(lbl).split(" ")[0]; | |
| var cls = head.indexOf("MEASURED")===0?"g":head.indexOf("MODELED")===0?"b":"n"; | |
| return '<span class="pill '+cls+'">'+esc(head)+'</span>'; | |
| } | |
| function render(d){ | |
| document.getElementById("status").hidden=true; | |
| var rep=document.getElementById("report"); rep.hidden=false; | |
| document.getElementById("benchTitle").textContent=d.title||"PINN benchmark"; | |
| document.getElementById("overallLabel").textContent=d.overall_label||""; | |
| var hw=d.hardware||{}; | |
| var neuralDevice=""; | |
| (d.problems||[]).forEach(function(p){(p.arms||[]).forEach(function(a){ | |
| if(a.framework!=="szl" && a.device && /gpu|rtx|cuda|geforce|a100|h100|radeon/i.test(a.device) && !neuralDevice) neuralDevice=a.device; | |
| });}); | |
| var shortDev=neuralDevice.replace(/^NVIDIA GeForce /,""); | |
| var mb=document.getElementById("metalBadge"); | |
| if(mb) mb.textContent = shortDev ? ("Our own metal · "+shortDev) : "Run on our own metal"; | |
| var meta=[ | |
| ["Assembled at", d.ran_at||"—"], | |
| ["SZL arm (shipped)", "CPU-only — no GPU required"], | |
| ["Neural competitors", neuralDevice ? ("our own "+neuralDevice) : "a CUDA GPU host (see each arm)"], | |
| ["Our metal", neuralDevice ? "SZL-owned hardware — not a rented cloud GPU" : "see each arm"], | |
| ["Assemble host", (hw.cpus||"?")+" CPU · "+(hw.ram_gib||"?")+" GiB · GPU: "+(hw.gpu||"none")], | |
| ["Doctrine", "v11 — labelled numbers only"] | |
| ]; | |
| document.getElementById("meta").innerHTML=meta.map(function(m){ | |
| return '<div class="m"><div class="k">'+esc(m[0])+'</div><div class="v">'+esc(m[1])+'</div></div>';}).join(""); | |
| try{ renderHologram(d, neuralDevice); }catch(e){ | |
| var hl=document.getElementById("holoLegend"); | |
| if(hl) hl.textContent="(3D showcase unavailable in this browser — the measured tables below are complete.)"; | |
| } | |
| var out=""; | |
| (d.problems||[]).forEach(function(p){ | |
| var metric=p.metric||"rel_l2_vs_exact"; | |
| out+='<div class="card"><h3 style="margin:0 0 4px;color:#fff">'+esc(p.id)+'</h3>'; | |
| out+='<p class="small" style="margin:0 0 2px"><span class="eq">'+esc(p.pde)+'</span></p>'; | |
| out+='<p class="small" style="margin:0 0 8px">exact: '+esc(p.exact)+' · metric: <b>'+esc(metric)+'</b></p>'; | |
| out+='<table><thead><tr><th>Framework</th><th>Method</th><th>'+esc(metric)+'</th><th>wall</th><th>seeds</th><th>device</th><th>label</th></tr></thead><tbody>'; | |
| (p.arms||[]).forEach(function(a){ | |
| var fw=FW[a.framework]||{name:a.framework,cls:a.method_class||""}; | |
| var method=a.method||a.method_class||fw.cls||""; | |
| out+='<tr><td><span class="fw">'+esc(fw.name)+'</span><br><span class="mc">'+esc(fw.cls)+'</span></td>' | |
| +'<td class="mc">'+esc(method)+'</td>' | |
| +'<td>'+metricCell(a,metric)+'</td>' | |
| +'<td>'+wallCell(a)+'</td>' | |
| +'<td class="mc">'+esc(a.seeds_run||(typeof a[metric]==="object"?a[metric].n:1))+'</td>' | |
| +'<td class="mc">'+esc(a.device||(a.framework==="szl"?"CPU":"—"))+'</td>' | |
| +'<td>'+labelPill(a.label)+'</td></tr>'; | |
| var extra=a.caveat||a.disclosure; | |
| if(a.caveat) out+='<tr><td colspan="7" class="mc" style="border-bottom:1px solid var(--line);padding-top:0"><span class="pill a">caveat</span> '+esc(a.caveat)+'</td></tr>'; | |
| }); | |
| out+='</tbody></table>'; | |
| if(p.disclosure&&p.disclosure.note) out+='<div class="note">Disclosure: '+esc(p.disclosure.note)+'</div>'; | |
| out+='</div>'; | |
| }); | |
| document.getElementById("problems").innerHTML=out; | |
| var interp=d.interpretation||{}; | |
| document.getElementById("interpretation").innerHTML=Object.keys(interp).map(function(k){ | |
| return '<p style="margin:6px 0"><b style="color:var(--gold)">'+esc(k)+':</b> '+esc(interp[k])+'</p>';}).join(""); | |
| document.getElementById("scopeLimits").innerHTML="<b>Scope limits.</b> "+esc(d.scope_limits||""); | |
| document.getElementById("honesty").innerHTML="<b>Honesty.</b> "+esc(d.honesty||""); | |
| var rep2=d.reproduce||{}; | |
| document.getElementById("reproduce").textContent=Object.keys(rep2).map(function(k){return "# "+k+"\n"+rep2[k];}).join("\n\n"); | |
| document.getElementById("doctrine").textContent=d.doctrine||""; | |
| } | |
| function renderHologram(d, neuralDevice){ | |
| if(!window.THREE) throw new Error("three unavailable"); | |
| var canvas=document.getElementById("holo"); if(!canvas) return; | |
| var probs=(d.problems||[]).slice(0,6); | |
| if(!probs.length) return; | |
| function metricVal(a,metric){ | |
| var v=a[metric]; | |
| if(v==null){["rel_l2_vs_exact","rel_l2","abs_err","rel_l2_vs_truth","alpha_abs_err","err"].some(function(k){if(a[k]!=null){v=a[k];return true;}return false;});} | |
| if(v&&typeof v==="object") v=(v.median!=null?v.median:(v.min!=null?v.min:null)); | |
| return (typeof v==="number")?v:null; | |
| } | |
| var COL={szl:0xe6c169, deepxde:0x5cc4bf, modulus_physicsnemo:0x9fe870}; | |
| var NAME={szl:"SZL", deepxde:"DeepXDE", modulus_physicsnemo:"PhysicsNeMo"}; | |
| var scene=new THREE.Scene(); scene.fog=new THREE.FogExp2(0x070810,0.055); | |
| var W=canvas.clientWidth||900, Hh=canvas.clientHeight||420; | |
| var cam=new THREE.PerspectiveCamera(46, W/Hh, 0.1, 100); | |
| cam.position.set(6.6,5.4,8.6); cam.lookAt(0,1.7,0); | |
| var rnd=new THREE.WebGLRenderer({canvas:canvas,antialias:true,alpha:true}); | |
| rnd.setPixelRatio(Math.min(window.devicePixelRatio||1,2)); rnd.setSize(W,Hh,false); | |
| scene.add(new THREE.AmbientLight(0x8899bb,0.65)); | |
| var key=new THREE.PointLight(0xffffff,0.9); key.position.set(6,11,6); scene.add(key); | |
| scene.add(new THREE.GridHelper(15,30,0x2a3350,0x161d30)); | |
| var group=new THREE.Group(); scene.add(group); | |
| var nP=probs.length, gap=3.0, barW=0.58, armGap=0.74; | |
| function label(text,color,scale){ | |
| var c=document.createElement("canvas"); c.width=256; c.height=64; | |
| var g=c.getContext("2d"); g.font="bold 30px -apple-system,Segoe UI,Roboto,sans-serif"; | |
| g.fillStyle=color||"#e8eaf0"; g.textAlign="center"; g.textBaseline="middle"; g.fillText(text,128,34); | |
| var tex=new THREE.CanvasTexture(c); tex.minFilter=THREE.LinearFilter; | |
| var sp=new THREE.Sprite(new THREE.SpriteMaterial({map:tex,transparent:true,depthTest:false})); | |
| sp.scale.set(scale||2.4,(scale||2.4)/4,1); return sp; | |
| } | |
| probs.forEach(function(p,pi){ | |
| var metric=p.metric||"rel_l2_vs_exact", arms=(p.arms||[]); | |
| var x0=(pi-(nP-1)/2)*gap; | |
| arms.forEach(function(a,ai){ | |
| var err=metricVal(a,metric); | |
| var h=(err!=null&&err>0)?Math.max(0.15,-Math.log(err)/Math.LN10):(err===0?16:0.15); | |
| h=h*0.42; if(h>7)h=7; | |
| var z=(ai-(arms.length-1)/2)*armGap; | |
| var col=(COL[a.framework]!=null)?COL[a.framework]:0x8899bb, isSZL=(a.framework==="szl"); | |
| var geo=new THREE.BoxGeometry(barW,h,barW); | |
| var bar=new THREE.Mesh(geo,new THREE.MeshStandardMaterial({color:col,emissive:col,emissiveIntensity:isSZL?0.55:0.28,metalness:0.3,roughness:0.35,transparent:true,opacity:isSZL?0.96:0.8})); | |
| bar.position.set(x0+z,h/2,0); group.add(bar); | |
| var wf=new THREE.LineSegments(new THREE.EdgesGeometry(geo),new THREE.LineBasicMaterial({color:col,transparent:true,opacity:0.55})); | |
| wf.position.copy(bar.position); group.add(wf); | |
| }); | |
| var pl=label(String(p.id||("problem "+(pi+1))).split("_")[0],"#d9b35c",2.7); | |
| pl.position.set(x0,-0.55,1.25); group.add(pl); | |
| }); | |
| (function(){ | |
| var arms0=(probs[0].arms||[]); | |
| arms0.forEach(function(a,ai){ | |
| var z=(ai-(arms0.length-1)/2)*armGap; | |
| var hex="#"+("000000"+((COL[a.framework]||0x8899bb)>>>0).toString(16)).slice(-6); | |
| var sp=label(NAME[a.framework]||a.framework,hex,1.9); | |
| sp.position.set(((-(nP-1)/2)*gap)+z-3.2,0.45,0); group.add(sp); | |
| }); | |
| })(); | |
| var lg=document.getElementById("holoLegend"); | |
| if(lg){ | |
| lg.innerHTML='<b style="color:#e6c169">■ SZL</b> governed spectral · ' | |
| +'<b style="color:#5cc4bf">■ DeepXDE</b> · <b style="color:#9fe870">■ PhysicsNeMo</b>' | |
| +' · height = −log₁₀(error), taller = more accurate.' | |
| +(neuralDevice?(' · neural arms measured on our own <b>'+esc(neuralDevice)+'</b>.'):'') | |
| +' The Poisson tower is machine-precision <b>by construction</b> (disclosed above), not a general-accuracy claim.'; | |
| } | |
| var t0=Date.now(); | |
| (function loop(){ | |
| var t=(Date.now()-t0)/1000; | |
| group.rotation.y=Math.sin(t*0.16)*0.5+t*0.05; | |
| rnd.render(scene,cam); requestAnimationFrame(loop); | |
| })(); | |
| window.addEventListener("resize",function(){ | |
| var w=canvas.clientWidth||900,h2=canvas.clientHeight||420; | |
| cam.aspect=w/h2; cam.updateProjectionMatrix(); rnd.setSize(w,h2,false); | |
| }); | |
| } | |
| fetch("/api/a11oy/v1/pinn/bench",{headers:{accept:"application/json"}}) | |
| .then(function(r){ if(!r.ok) throw new Error("HTTP "+r.status); return r.json(); }) | |
| .then(render) | |
| .catch(function(e){ | |
| document.getElementById("status").innerHTML= | |
| 'Live benchmark data is not reachable right now (<code>'+esc(e.message)+'</code>). '+ | |
| 'The measured artifact is served at <a href="/api/a11oy/v1/pinn/bench">/api/a11oy/v1/pinn/bench</a> — '+ | |
| 'this page intentionally shows no numbers it cannot fetch from that source.'; | |
| }); | |
| })(); | |
| </script> | |
| <script src="/assets/szl-flow.js" defer data-szl-flow-asset="script"></script> | |
| <script src="/assets/szl-holo-v2.js" defer data-szl-holo-asset="script-v2"></script> | |
| </body></html> | |