mirror of
https://github.com/ruvnet/RuView
synced 2026-08-08 20:11:43 +00:00
deploy(nvsim): publish dashboard to /nvsim/ [ADR-092]
Vite + Lit dashboard for the nvsim NV-diamond magnetometer simulator.
WASM-backed deterministic pipeline (Proof::EXPECTED_WITNESS_HEX matches
across browsers and machines). PWA-enabled with service worker and
manifest scoped to /RuView/nvsim/.
Live: https://ruvnet.github.io/RuView/nvsim/
Preserves all sibling demos:
- / (Observatory)
- /pose-fusion/ (Pose Fusion)
- /ui/ (legacy UI)
Source: feat/nvsim-pipeline-simulator @ 5846c3d6d
Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
@@ -0,0 +1 @@
|
||||
:root{--bg-0: #07090d;--bg-1: #0d1117;--bg-2: #131a23;--bg-3: #1a232f;--line: #1f2a38;--line-2: #2a3848;--ink: #e6edf3;--ink-2: #b8c2cc;--ink-3: #7c8694;--ink-4: #4a5462;--accent: oklch(.78 .14 70);--accent-2: oklch(.78 .12 195);--accent-3: oklch(.72 .18 330);--accent-4: oklch(.78 .14 145);--warn: oklch(.7 .18 35);--ok: oklch(.78 .14 145);--bad: oklch(.65 .22 25);--grid: rgba(255, 255, 255, .04);--shadow: 0 20px 60px -20px rgba(0, 0, 0, .6), 0 4px 12px -4px rgba(0, 0, 0, .4);--radius: 12px;--radius-sm: 8px;--mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans: "Inter", system-ui, -apple-system, sans-serif}[data-theme=light]{--bg-0: #f4f5f7;--bg-1: #fbfbfc;--bg-2: #ffffff;--bg-3: #f0f2f5;--line: #e3e7ec;--line-2: #d1d7de;--ink: #11161d;--ink-2: #38424f;--ink-3: #6b7684;--ink-4: #9ba4b0;--grid: rgba(0, 0, 0, .05);--shadow: 0 12px 40px -16px rgba(15, 30, 55, .18), 0 2px 8px -2px rgba(15, 30, 55, .08)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--sans);background:var(--bg-0);color:var(--ink);font-size:14px;line-height:1.45;overflow:hidden;height:100vh;-webkit-font-smoothing:antialiased;letter-spacing:-.005em}button{font-family:inherit;color:inherit;cursor:pointer}input,select{font-family:inherit;color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}@keyframes pulse{50%{opacity:.5}}@keyframes dash{to{stroke-dashoffset:-200}}@keyframes float-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes diamond-spin{0%{transform:rotateY(0) rotateX(8deg)}to{transform:rotateY(360deg) rotateX(8deg)}}@keyframes spin{to{transform:rotate(360deg)}}body.reduce-motion *,body.reduce-motion *:before,body.reduce-motion *:after{animation:none!important;transition:none!important}body.density-comfy{font-size:15px}body.density-default{font-size:14px}body.density-compact{font-size:13px}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
||||
var U=Symbol.for("preact-signals");function l(){if(e>1)e--;else{var t,i=!1;for(function(){var s=a;for(a=void 0;s!==void 0;)s.S.v===s.v&&(s.S.i=s.i),s=s.o}();u!==void 0;){var o=u;for(u=void 0,d++;o!==void 0;){var n=o.u;if(o.u=void 0,o.f&=-3,!(8&o.f)&&x(o))try{o.c()}catch(s){i||(t=s,i=!0)}o=n}}if(d=0,e--,i)throw t}}var r=void 0;function S(t){var i=r;r=void 0;try{return t()}finally{r=i}}var u=void 0,e=0,d=0,y=0,a=void 0,c=0;function w(t){if(r!==void 0){var i=t.n;if(i===void 0||i.t!==r)return i={i:0,S:t,p:r.s,n:void 0,t:r,e:void 0,x:void 0,r:i},r.s!==void 0&&(r.s.n=i),r.s=i,t.n=i,32&r.f&&t.S(i),i;if(i.i===-1)return i.i=0,i.n!==void 0&&(i.n.p=i.p,i.p!==void 0&&(i.p.n=i.n),i.p=r.s,i.n=void 0,r.s.n=i,r.s=i),i}}function f(t,i){this.v=t,this.i=0,this.n=void 0,this.t=void 0,this.l=0,this.W=i?.watched,this.Z=i?.unwatched,this.name=i?.name}f.prototype.brand=U;f.prototype.h=function(){return!0};f.prototype.S=function(t){var i=this,o=this.t;o!==t&&t.e===void 0&&(t.x=o,this.t=t,o!==void 0?o.e=t:S(function(){var n;(n=i.W)==null||n.call(i)}))};f.prototype.U=function(t){var i=this;if(this.t!==void 0){var o=t.e,n=t.x;o!==void 0&&(o.x=n,t.e=void 0),n!==void 0&&(n.e=o,t.x=void 0),t===this.t&&(this.t=n,n===void 0&&S(function(){var s;(s=i.Z)==null||s.call(i)}))}};f.prototype.subscribe=function(t){var i=this;return N(function(){var o=i.value,n=r;r=void 0;try{t(o)}finally{r=n}},{name:"sub"})};f.prototype.valueOf=function(){return this.value};f.prototype.toString=function(){return this.value+""};f.prototype.toJSON=function(){return this.value};f.prototype.peek=function(){var t=r;r=void 0;try{return this.value}finally{r=t}};Object.defineProperty(f.prototype,"value",{get:function(){var t=w(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(t!==this.v){if(d>100)throw new Error("Cycle detected");(function(o){e!==0&&d===0&&o.l!==y&&(o.l=y,a={S:o,v:o.v,i:o.i,o:a})})(this),this.v=t,this.i++,c++,e++;try{for(var i=this.t;i!==void 0;i=i.x)i.t.N()}finally{l()}}}});function O(t,i){return new f(t,i)}function x(t){for(var i=t.s;i!==void 0;i=i.n)if(i.S.i!==i.i||!i.S.h()||i.S.i!==i.i)return!0;return!1}function m(t){for(var i=t.s;i!==void 0;i=i.n){var o=i.S.n;if(o!==void 0&&(i.r=o),i.S.n=i,i.i=-1,i.n===void 0){t.s=i;break}}}function b(t){for(var i=t.s,o=void 0;i!==void 0;){var n=i.p;i.i===-1?(i.S.U(i),n!==void 0&&(n.n=i.n),i.n!==void 0&&(i.n.p=n)):o=i,i.S.n=i.r,i.r!==void 0&&(i.r=void 0),i=n}t.s=o}function h(t,i){f.call(this,void 0),this.x=t,this.s=void 0,this.g=c-1,this.f=4,this.W=i?.watched,this.Z=i?.unwatched,this.name=i?.name}h.prototype=new f;h.prototype.h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===c))return!0;if(this.g=c,this.f|=1,this.i>0&&!x(this))return this.f&=-2,!0;var t=r;try{m(this),r=this;var i=this.x();(16&this.f||this.v!==i||this.i===0)&&(this.v=i,this.f&=-17,this.i++)}catch(o){this.v=o,this.f|=16,this.i++}return r=t,b(this),this.f&=-2,!0};h.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var i=this.s;i!==void 0;i=i.n)i.S.S(i)}f.prototype.S.call(this,t)};h.prototype.U=function(t){if(this.t!==void 0&&(f.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var i=this.s;i!==void 0;i=i.n)i.S.U(i)}};h.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}};Object.defineProperty(h.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var t=w(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function j(t,i){return new h(t,i)}function g(t){var i=t.m;if(t.m=void 0,typeof i=="function"){e++;var o=r;r=void 0;try{i()}catch(n){throw t.f&=-2,t.f|=8,p(t),n}finally{r=o,l()}}}function p(t){for(var i=t.s;i!==void 0;i=i.n)i.S.U(i);t.x=void 0,t.s=void 0,g(t)}function E(t){if(r!==this)throw new Error("Out-of-order effect");b(this),r=t,this.f&=-2,8&this.f&&p(this),l()}function v(t,i){this.x=t,this.m=void 0,this.s=void 0,this.u=void 0,this.f=32,this.name=i?.name}v.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var i=this.x();typeof i=="function"&&(this.m=i)}finally{t()}};v.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,g(this),m(this),e++;var t=r;return r=this,E.bind(this,t)};v.prototype.N=function(){2&this.f||(this.f|=2,this.u=u,u=this)};v.prototype.d=function(){this.f|=8,1&this.f||p(this)};v.prototype.dispose=function(){this.d()};function N(t,i){var o=new v(t,i);try{o.c()}catch(s){throw o.d(),s}var n=o.d.bind(o);return n[Symbol.dispose]=n,n}export{j as g,N as j,O as y};
|
||||
//# sourceMappingURL=signals-SG45zFCj.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
|
||||
const d=self;let o,_,x,g,W;async function S(){const r=`${d.location.origin}/`,t=await import(new URL("nvsim-pkg/nvsim.js",r).href);await t.default(),o=t.WasmPipeline,_=t.referenceSceneJson,x=t.expectedReferenceWitnessHex,g=t.hexWitness,W=t.referenceWitness}let a=null,p="",m="",F=BigInt(3405691582),b=!1,l=null,i=0,w=0;function f(){m||(m=_()),p||(p=JSON.stringify({digitiser:{f_s_hz:1e4,f_mod_hz:1e3},sensor:{gamma_fwhm_hz:1e6,t1_s:.005,t2_s:1e-6,t2_star_s:2e-7,contrast:.03,n_spins:1e12,shot_noise_disabled:!1},dt_s:null})),a?.free?.(),a=new o(m,p,Number(F&0xFFFFFFFFn))}function s(r,e=[]){d.postMessage(r,e)}function B(){if(l!==null)return;w=performance.now(),i=0;const r=()=>{if(!b||!a)return;const e=32,t=a.run(e);i+=e;const n=(performance.now()-w)/1e3,c=n>0?i/n:0;s({type:"frames",batch:t.buffer,count:e,fps:c,framesEmitted:i},[t.buffer]),l=d.setTimeout(r,16)};l=d.setTimeout(r,0)}function h(){l!==null&&(d.clearTimeout(l),l=null)}d.addEventListener("message",async r=>{const e=r.data;try{switch(e.type){case"boot":{await S(),f(),s({type:"booted",id:e.id,buildVersion:o.buildVersion(),frameMagic:o.frameMagic(),frameBytes:o.frameBytes(),expectedWitnessHex:x()});break}case"setScene":{m=e.json,f(),s({type:"ack",id:e.id});break}case"setConfig":{p=e.json,f(),s({type:"ack",id:e.id});break}case"setSeed":{F=BigInt(e.seed),f(),s({type:"ack",id:e.id});break}case"reset":{h(),b=!1,f(),i=0,s({type:"ack",id:e.id}),s({type:"state",running:!1,framesEmitted:i});break}case"run":{a||f(),b=!0,B(),s({type:"ack",id:e.id}),s({type:"state",running:!0,framesEmitted:i});break}case"pause":{b=!1,h(),s({type:"ack",id:e.id}),s({type:"state",running:!1,framesEmitted:i});break}case"step":{a||f();const t=a.run(1);i+=1,s({type:"frames",batch:t.buffer,count:1,fps:0,framesEmitted:i},[t.buffer]),s({type:"ack",id:e.id});break}case"witnessGenerate":{a||f();const t=e.samples??256,n=a.runWithWitness(t),c=g(n.witness);s({type:"witness",id:e.id,witness:n.witness.buffer,hex:c,frameCount:n.frameCount},[n.witness.buffer]);break}case"witnessVerify":{const t=e.expected,n=new Uint8Array(t),c=W();let y=c.length===n.length;if(y){for(let u=0;u<n.length;u++)if(c[u]!==n[u]){y=!1;break}}const k=c.slice().buffer;s({type:"verify",id:e.id,ok:y,actual:k,actualHex:g(c)},[k]);break}case"buildId":{s({type:"buildId",id:e.id,buildId:`nvsim@${o.buildVersion()}`});break}default:s({type:"err",id:e.id,msg:`unknown op ${e.type}`})}}catch(t){s({type:"err",id:e.id,msg:t.message??String(t)})}});s({type:"ready"});
|
||||
//# sourceMappingURL=worker-DBavH9su.js.map
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user