Spaces:
Running
Running
File size: 72,783 Bytes
d511c9b a21cf64 d511c9b 2b7bf9e d511c9b d10566a d511c9b d10566a d511c9b d10566a d511c9b 2b7bf9e a0f8a7d 3fb5a36 a0f8a7d 3fb5a36 2b7bf9e d511c9b d10566a 2b7bf9e a0f8a7d 2b7bf9e a0f8a7d 2b7bf9e f0d64c0 3fb5a36 2b7bf9e 3fb5a36 d10566a d511c9b d10566a d511c9b f0d64c0 29e12b1 a0f8a7d d10566a a0f8a7d d511c9b d10566a 2b7bf9e 3fb5a36 2b7bf9e 3fb5a36 2b7bf9e 3fb5a36 2b7bf9e d10566a 2b7bf9e d10566a 2b7bf9e d10566a 8e24f52 a0f8a7d 8e24f52 0779003 d511c9b a21cf64 d511c9b 21bdc73 d10566a d511c9b 8e24f52 d511c9b a0f8a7d 3fb5a36 a0f8a7d 3fb5a36 2b7bf9e d511c9b f0d64c0 8e24f52 a0f8a7d 8e24f52 d511c9b 0779003 29e12b1 d511c9b 3fb5a36 2b7bf9e b953323 2b7bf9e 3a22d1d 5b25a06 20a4008 02150ec 1876cf7 998a0ae 8a2af49 b424ff7 a0f8a7d b424ff7 2bdb5a9 23454f0 ce0a040 ac6377f 6836669 3c983a2 123f03b 5d06452 d927a7d 6c1070a 9feb4b6 27d2d58 a0f8a7d 27d2d58 1db799d f0d64c0 b58ef1e 66455ab fa2a472 f8b7ea1 d511c9b 21bdc73 d511c9b 5abca18 d511c9b 21bdc73 d511c9b 21bdc73 a0f8a7d 21bdc73 d511c9b a0f8a7d d511c9b a0f8a7d d511c9b 2b7bf9e 29e12b1 d511c9b a0f8a7d d511c9b 2b7bf9e a0f8a7d 2b7bf9e 3fb5a36 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 0779003 a21cf64 2b7bf9e a0f8a7d 29e12b1 2b7bf9e a0f8a7d 2b7bf9e a0f8a7d 2b7bf9e 29e12b1 2b7bf9e 29e12b1 2b7bf9e 29e12b1 2b7bf9e a0f8a7d 3fb5a36 2b7bf9e d10566a a0f8a7d 2b7bf9e f0d64c0 2b7bf9e a0f8a7d 2b7bf9e a0f8a7d 2b7bf9e 3fb5a36 2b7bf9e d511c9b 3fb5a36 a0f8a7d 3fb5a36 a0f8a7d 3fb5a36 a0f8a7d 3fb5a36 a0f8a7d 3fb5a36 2b7bf9e 3fb5a36 0779003 a0f8a7d 2b7bf9e 21bdc73 d511c9b 21bdc73 d511c9b bffed93 d511c9b a0f8a7d 8e24f52 a0f8a7d 8e24f52 a0f8a7d 8e24f52 a0f8a7d 8e24f52 a0f8a7d 8e24f52 a0f8a7d 8e24f52 d511c9b | 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 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 | <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>A11oy Holographic Operations — a11oy</title>
<!-- 0 runtime CDN. All 3D libs vendored in-image and served same-origin via the
/static/3d/vendor/... importmap below (see VENDOR_MANIFEST.md). System fonts only. -->
<script type="importmap">
{
"imports": {
"three": "/static/3d/vendor/three/three.module.min.js",
"three/webgpu": "/static/3d/vendor/three/three.webgpu.min.js",
"three/addons/": "/static/3d/vendor/three/addons/"
}
}
</script>
<style>
:root{--bg:#05070d;--panel:#0b121b;--line:#1b2734;--teal:#39d3c4;--proof:#3af4c8;--gold:#e8c074;--cream:#eef3f6;--para:#9fb1bf;}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
/* Flex column so the 3D stage always fills the space left over by the header +
tab strip, no matter how far they wrap. dvh (dynamic viewport height) tracks
the mobile address-bar collapse; svh/100vh are fallbacks for older engines. */
body{background:var(--bg);color:var(--cream);font:14px/1.5 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial;
overflow:hidden;display:flex;flex-direction:column;height:100vh;height:100svh;height:100dvh}
header{padding:10px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#08101a,#05070d);
display:flex;align-items:center;gap:14px;flex-wrap:wrap;flex:0 0 auto}
h1{font-size:16px;margin:0;letter-spacing:.4px}
.badge{display:inline-block;font:10.5px ui-monospace,monospace;padding:2px 7px;border-radius:6px;
border:1px solid var(--line);color:var(--gold);background:#10171f;white-space:nowrap}
#backend{color:var(--teal)}
/* Nav = a pinned ★ Featured row (flagships incl. Atlas, always visible) above a row of
collapsible CATEGORY dropdowns. Replaces the old flat wall of ~84 pills so the flagship
surfaces stand out and the rest group behind one-tap dropdowns. Accents are proof-teal
(0x3af4c8) — NEVER purple (doctrine v11 palette). */
.tabs{display:flex;flex-direction:column;gap:0;padding:8px 12px;border-bottom:1px solid var(--line);
background:#070d15;flex:0 0 auto;position:relative;z-index:18}
.tabs[data-browse="true"],.tabs:focus-within{z-index:40}
.navrow{display:flex;gap:6px;flex-wrap:nowrap;align-items:center;overflow-x:auto;
-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.navrow::-webkit-scrollbar{display:none}
.navlabel{font:9.5px ui-monospace,monospace;color:var(--para);letter-spacing:.6px;
text-transform:uppercase;opacity:.7;margin-right:2px;flex:0 0 auto}
.tab{font:11.5px ui-monospace,monospace;padding:6px 12px;border-radius:7px;border:1px solid var(--line);
background:#0a121b;color:var(--para);cursor:pointer;letter-spacing:.3px;transition:.12s;white-space:nowrap}
.tab:hover{border-color:var(--proof);color:var(--cream)}
.tab[data-active="true"]{background:#12202b;color:var(--cream);border-color:var(--proof);
box-shadow:0 0 0 1px var(--proof) inset}
/* Featured (flagship) pills — proof-teal star + accent so Brain/Anatomy stand out. */
.tab--feat{border-color:#20323e;color:var(--cream);background:#0b1620}
.tab--feat .star{color:var(--proof);margin-right:5px}
.tab--feat[data-active="true"]{border-color:var(--proof);
box-shadow:0 0 0 1px var(--proof) inset,0 0 10px rgba(58,244,200,.25)}
/* Category dropdown buttons — ▸ caret rotates to ▾ when the panel is open. */
.catbtn{font:11px ui-monospace,monospace;padding:6px 11px;border-radius:7px;border:1px solid var(--line);
background:#0a121b;color:var(--para);cursor:pointer;letter-spacing:.3px;white-space:nowrap;
display:inline-flex;align-items:center;gap:6px;transition:.12s}
.catbtn:hover{border-color:var(--proof);color:var(--cream)}
.catbtn .caret{font-size:9px;transition:transform .15s;color:var(--proof)}
.catbtn[aria-expanded="true"]{color:var(--cream);border-color:var(--proof)}
.catbtn[aria-expanded="true"] .caret{transform:rotate(90deg)}
.catbtn[data-hasactive="true"]{box-shadow:0 0 0 1px var(--proof) inset}
.catbtn .count{font-size:9px;color:var(--para);opacity:.7}
/* Drop panel: the tabs of the currently-open category (only one open at a time). */
.panel{display:none;gap:6px;flex-wrap:wrap;padding:8px;margin-top:2px;max-height:180px;
overflow-y:auto;border:1px solid var(--line);border-radius:9px;background:#08111a}
.panel[data-open="true"]{display:flex}
.navtools{display:grid;grid-template-columns:minmax(260px,1fr) minmax(210px,auto) auto auto;
gap:7px;align-items:center;min-height:34px}
.surface-search{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;
background:#08111a;color:var(--cream);padding:7px 10px;font:11.5px ui-monospace,monospace;
outline:none;letter-spacing:.2px}
.surface-search:focus{border-color:var(--proof);box-shadow:0 0 0 1px var(--proof)}
.surface-search::placeholder{color:#70818e}
.navmeta{font:10px ui-monospace,monospace;color:var(--para);white-space:nowrap}
.navmode{border:1px solid var(--line);border-radius:8px;background:#0a121b;color:var(--para);
padding:7px 10px;font:10.5px ui-monospace,monospace;cursor:pointer;white-space:nowrap}
.navmode:hover{border-color:var(--proof);color:var(--cream)}
.active-surface{display:flex;align-items:center;gap:7px;min-width:0;padding:0 8px;
border-left:1px solid var(--line);font:10px ui-monospace,monospace;color:var(--para)}
.active-surface span{font-size:9px;letter-spacing:.8px;color:var(--proof)}
.active-surface strong{font-weight:500;color:var(--cream);overflow:hidden;text-overflow:ellipsis;
white-space:nowrap;max-width:32vw}
.surface-browser{display:none;position:absolute;left:12px;right:12px;top:calc(100% + 1px);
padding:9px;border:1px solid var(--line);border-top-color:#20323e;border-radius:0 0 10px 10px;
background:rgba(7,13,21,.98);box-shadow:0 18px 40px rgba(0,0,0,.56);z-index:20}
.tabs[data-browse="true"] .surface-browser{display:flex;flex-direction:column;gap:7px}
#search-panel{position:absolute;left:12px;right:12px;top:calc(100% + 1px);z-index:22;
margin:0;box-shadow:0 18px 40px rgba(0,0,0,.56)}
#stage-wrap{position:relative;flex:1 1 auto;min-height:0;width:100%}
#stage{position:absolute;inset:0}
#stage canvas{display:block;width:100%;height:100%;touch-action:none}
#fallback{position:absolute;inset:0;display:none;align-items:center;justify-content:center;
text-align:center;color:var(--para);padding:24px;font:13px ui-monospace,monospace}
#surface-caption{padding:4px 14px;border-top:1px solid var(--line);background:#060c14;
color:var(--para);font:10.5px ui-monospace,monospace;letter-spacing:.2px;flex:0 0 auto;
white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:6}
#surface-caption:empty{display:none}
footer{padding:6px 14px;border-top:1px solid var(--line);flex:0 0 auto;
background:#070d15;color:var(--para);font:10.5px ui-monospace,monospace;letter-spacing:.3px;z-index:6;
white-space:normal;overflow:visible;line-height:1.35}
a{color:var(--teal);text-decoration:none}
/* ---- Mobile / touch (<=640px) ---------------------------------------- */
@media (max-width:640px){
header{padding:8px 12px;gap:8px}
h1{font-size:14px;flex:1 1 100%}
/* Keep only the essential badges visible; hide the noisier ones on small screens. */
header .badge{font-size:9.5px;padding:2px 6px}
#three-rev-badge,#cdn-badge{display:none}
.tabs{padding:7px 10px;gap:5px}
.navtools{grid-template-columns:minmax(0,1fr) auto}
.navmeta,.active-surface{display:none}
/* Featured + category rows each scroll horizontally so they never build a tall wall;
the tapped-open panel wraps below, height-capped so it never shoves the stage off. */
.navrow{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.navrow::-webkit-scrollbar{display:none}
.navlabel{position:sticky;left:0;background:#070d15;z-index:1}
.tab,.catbtn{padding:7px 11px;font-size:11px;flex:0 0 auto}
.surface-browser{left:8px;right:8px;max-height:52vh;overflow:auto}
.panel[data-open="true"]{flex-wrap:wrap;max-height:34vh;overflow-y:auto}
footer{font-size:9px;padding:5px 10px}
/* Give the 3D stage a guaranteed usable share of the screen on phones (100dvh-safe). */
#stage-wrap{min-height:46vh}
}
@media (max-width:640px) and (orientation:landscape){
#stage-wrap{min-height:56vh}
}
/* ---- Landing / intro overlay (Dev4, Wave R) --------------------------- */
/* A coherent honest entry panel that showcases the Brain + the frontier estate
+ the public /verify, sitting over the live 3D stage (which boots underneath).
Additive: dismisses to reveal the estate; every stat carries an honest label and
degrades to NO-LIVE-DATA if its same-origin endpoint 404s / is unreachable. */
#intro{position:fixed;inset:0;z-index:80;display:flex;flex-direction:column;
align-items:center;justify-content:center;gap:16px;padding:26px 20px;overflow-y:auto;
background:radial-gradient(120% 120% at 50% 0%,rgba(11,22,32,.90),rgba(5,7,13,.96));
-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);text-align:center}
#intro[hidden]{display:none}
#intro .intro-eyebrow{font:10.5px ui-monospace,monospace;letter-spacing:1.2px;
text-transform:uppercase;color:var(--gold);opacity:.85}
#intro h2{margin:0;font-size:clamp(19px,3.4vw,30px);letter-spacing:.3px;color:var(--cream);
font-weight:600;max-width:min(720px,92vw)}
#intro .intro-sub{margin:0;max-width:min(640px,90vw);color:var(--para);
font:13.5px/1.55 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial}
#intro .cards{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;
max-width:min(880px,95vw);margin-top:2px}
#intro .card{flex:1 1 240px;min-width:210px;max-width:280px;text-align:left;
border:1px solid var(--line);border-radius:12px;background:#0a121bcc;padding:14px 15px;
display:flex;flex-direction:column;gap:8px}
#intro .card h3{margin:0;font:12.5px ui-monospace,monospace;letter-spacing:.4px;color:var(--cream)}
#intro .card p{margin:0;font:12px/1.5 ui-sans-serif,system-ui,Segoe UI,Roboto,Arial;color:var(--para)}
#intro .stat{font:22px ui-monospace,monospace;color:var(--proof);line-height:1.1}
#intro .stat small{font-size:11px;color:var(--para);display:block;margin-top:2px;letter-spacing:.2px}
#intro .lbl{align-self:flex-start;font:9.5px ui-monospace,monospace;padding:2px 7px;border-radius:6px;
border:1px solid var(--line);letter-spacing:.4px}
#intro .lbl[data-state="live"]{color:var(--proof);border-color:#20323e}
#intro .lbl[data-state="degraded"]{color:var(--gold);border-color:#3a2f1a}
#intro .card .go{margin-top:auto;font:11px ui-monospace,monospace;padding:7px 10px;border-radius:8px;
border:1px solid var(--line);background:#0b1620;color:var(--cream);cursor:pointer;text-align:center;
transition:.12s;text-decoration:none}
#intro .card .go:hover{border-color:var(--proof);color:var(--cream)}
#intro .enter{margin-top:6px;font:12.5px ui-monospace,monospace;padding:10px 22px;border-radius:9px;
border:1px solid var(--proof);background:#12202b;color:var(--cream);cursor:pointer;letter-spacing:.4px;
box-shadow:0 0 0 1px var(--proof) inset,0 0 12px rgba(58,244,200,.22);transition:.12s}
#intro .enter:hover{box-shadow:0 0 0 1px var(--proof) inset,0 0 18px rgba(58,244,200,.4)}
#intro .intro-foot{font:10px ui-monospace,monospace;color:var(--para);opacity:.8;letter-spacing:.3px;
max-width:min(760px,92vw)}
#intro-reopen{cursor:pointer;background:#10171f}
@media (max-width:640px){
#intro{gap:12px;padding:20px 14px;justify-content:flex-start}
#intro .cards{gap:9px}
#intro .card{padding:11px 12px;min-width:0;flex:1 1 100%;max-width:420px}
}
/* ---- Universal evidence rail ----------------------------------------- */
.evidence-rail{position:fixed;right:12px;bottom:48px;z-index:65;width:min(390px,calc(100vw - 24px));
border:1px solid var(--line);border-radius:11px;background:rgba(7,13,21,.97);
box-shadow:0 14px 40px rgba(0,0,0,.55);font:11px/1.45 ui-monospace,monospace}
.evidence-rail__toggle{width:100%;display:flex;align-items:center;justify-content:space-between;
gap:10px;padding:8px 11px;border:0;border-radius:10px;background:#0b1620;color:var(--cream);
font:11px ui-monospace,monospace;cursor:pointer;text-align:left}
.evidence-rail__toggle:focus-visible{outline:2px solid var(--proof);outline-offset:2px}
.evidence-rail__state{color:var(--gold);white-space:nowrap}
.evidence-rail[data-state="OBSERVED"] .evidence-rail__state{color:var(--proof)}
.evidence-rail__panel{border-top:1px solid var(--line);padding:10px 11px;color:var(--para)}
.evidence-rail__panel[hidden]{display:none}
.evidence-rail__title{display:block;color:var(--cream);margin-bottom:5px}
.evidence-rail__row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;padding:2px 0}
.evidence-rail__row span:first-child{color:#738796;text-transform:uppercase;font-size:9px}
.evidence-rail__row code{overflow-wrap:anywhere;color:var(--teal)}
.evidence-rail__links{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.evidence-rail__links a{border:1px solid var(--line);border-radius:6px;padding:4px 7px}
@media (max-width:640px){.evidence-rail{right:8px;left:8px;bottom:42px;width:auto}.evidence-rail__panel{max-height:38vh;overflow:auto}}
@media (prefers-reduced-motion:reduce){.evidence-rail *{scroll-behavior:auto!important;transition:none!important}}
</style>
</head>
<body>
<header>
<h1>A11oy Holographic Operations</h1>
<span class="badge" id="estate-observation-badge" data-state="UNVERIFIED">Evidence status: UNVERIFIED</span>
<span class="badge" id="backend">renderer: …</span>
<button class="badge" id="gpu-toggle" title="Toggle WebGPU compute path (falls back to WebGL2 if the browser/driver can't provide a WebGPU device). WebGPU is not production-safe on all platforms — doctrine." style="cursor:pointer;background:#10171f">⚡ WebGPU: off</button>
<span class="badge" id="three-rev-badge">three r<span id="three-rev">…</span></span>
<span class="badge" id="cdn-badge">0 runtime CDN</span>
<span class="badge">Λ = Conjecture 1</span>
<button class="badge" id="intro-reopen" title="Reopen the landing overview (Brain · frontier estate · public verify)">◇ intro</button>
<a href="/verify" class="badge" title="Public receipt verifier — paste a signed Khipu receipt / DSSE envelope for a PASS/FAIL panel">✓ verify</a>
<a href="/" style="margin-left:auto;font:11px ui-monospace,monospace">← a11oy</a>
</header>
<nav class="tabs" id="tabs" aria-label="Estate surface command center" data-browse="false">
<div class="navtools">
<input class="surface-search" id="surface-search" type="search"
placeholder="Find a surface (Ctrl/⌘ K)" autocomplete="off" spellcheck="false"
aria-label="Find an estate surface" aria-controls="search-panel"/>
<div class="active-surface" id="active-surface" aria-live="polite"><span>ACTIVE</span><strong>Loading surface</strong></div>
<span class="navmeta" id="surface-results-count">All surfaces indexed</span>
<button class="navmode" id="nav-mode" type="button" aria-expanded="false" aria-controls="surface-browser">Browse surfaces</button>
</div>
<div class="panel" id="search-panel" role="region" aria-label="Surface search results" data-open="false"></div>
<div class="surface-browser" id="surface-browser" role="region" aria-label="All estate surfaces">
<div class="navrow" id="featured-row"><span class="navlabel">★ Featured</span></div>
<div class="navrow" id="cat-row"><span class="navlabel">Categories</span></div>
<div id="cat-panels"></div>
</div>
</nav>
<div id="stage-wrap">
<div id="stage"></div>
<div id="fallback">3D unavailable on this device — the holographic estate needs a WebGL2 or WebGPU canvas.<br>
All underlying data is still available as JSON at the per-surface endpoints.</div>
<!-- Landing overlay (Dev4): coherent honest entry over the live estate. -->
<div id="intro" role="dialog" aria-modal="true" tabindex="-1" aria-label="a11oy holographic estate — landing overview" hidden>
<div class="intro-eyebrow">SZL Holdings · Doctrine v11 · Λ = Conjecture 1</div>
<h2>The governed agentic substrate, rendered as a holographic estate</h2>
<p class="intro-sub">Every value each surface shows traces to a real same-origin a11oy endpoint and
carries its own honesty label (MEASURED / MODELED / SAMPLE / STRUCTURAL-ONLY). Nothing here is
invented. Start with the Brain, walk the frontier estate, or verify a signed receipt yourself.</p>
<div class="cards">
<div class="card" id="card-brain">
<span class="lbl" data-state="degraded" id="brain-lbl">NO-LIVE-DATA</span>
<h3>Brain — live knowledge graph</h3>
<div class="stat" id="brain-stat">—<small id="brain-sub">distinct artifacts (harvested)</small></div>
<p id="brain-note">The estate's own harvested graph. Distinct artifacts is the honest headline;
the raw node count is larger (dominated by arXiv co-author nodes).</p>
<button class="go" data-go="brain">Open the Brain →</button>
</div>
<div class="card" id="card-estate">
<span class="lbl" data-state="degraded" id="estate-lbl">NO-LIVE-DATA</span>
<h3>Frontier estate</h3>
<div class="stat" id="estate-stat">—<small>3D surfaces, each wired to a live backend</small></div>
<p>Attention, reasoning, governance, proof, energy, defense and more — grouped behind the
category dropdowns above. locked-proven formulas = 8 (never inflated).</p>
<button class="go" data-go="frontierindex">Explore the estate →</button>
</div>
<div class="card" id="card-verify">
<span class="lbl" data-state="live">PUBLIC</span>
<h3>Verify it yourself</h3>
<div class="stat">✓<small>signed Khipu receipt / DSSE envelope</small></div>
<p>Receipts sign on state changes, never on reads. Paste a receipt id or envelope into the
public verifier for an independent PASS / FAIL panel — no login.</p>
<a class="go" href="/verify">Open /verify →</a>
</div>
</div>
<button class="enter" id="intro-enter">Enter the estate →</button>
<div class="intro-foot">Doctrine v11 · locked = 8 {F1,F4,F7,F11,F12,F18,F19,F22} · Λ = Conjecture 1 ·
Khipu BFT = Conjecture 2 · 0 runtime CDN (three.js vendored in-image) · trust < 100%</div>
</div>
</div>
<aside id="evidence-rail" class="evidence-rail" data-state="UNVERIFIED"
aria-label="Active surface evidence" aria-live="polite">
<button id="evidence-rail-toggle" class="evidence-rail__toggle" type="button"
aria-expanded="false" aria-controls="evidence-rail-panel">
<span>Evidence · active surface</span><span id="evidence-rail-state" class="evidence-rail__state">UNVERIFIED</span>
</button>
<div id="evidence-rail-panel" class="evidence-rail__panel" hidden>
<strong id="evidence-rail-title" class="evidence-rail__title">Loading surface</strong>
<div class="evidence-rail__row"><span>Surface</span><code id="evidence-rail-id">—</code></div>
<div class="evidence-rail__row"><span>Contract</span><code id="evidence-rail-contract">—</code></div>
<div class="evidence-rail__row"><span>Runtime</span><span id="evidence-rail-runtime">NOT_EVALUATED</span></div>
<div class="evidence-rail__row"><span>Readiness</span><span id="evidence-rail-readiness">NOT_EVALUATED</span></div>
<div class="evidence-rail__links"><a href="/api/a11oy/v1/readiness/tab-matrix?view=summary">Readiness JSON</a><a href="/api/build-info">Build identity</a><a href="/verify">Verify receipt</a></div>
</div>
</aside>
<div id="surface-caption" title=""></div>
<footer>Doctrine v11 · locked = 8 @ c7c0ba17 · Λ = Conjecture 1 · Khipu BFT = Conjecture 2 ·
shared szl3d toolkit (Dev0) · every value carries its honesty label · trust < 100%</footer>
<script type="module">
import szl3d from "/static/3d/szl3d/szl3d_boot.js";
import * as live from "/static/3d/szl3d/szl3d_live.js";
import * as label from "/static/3d/szl3d/szl3d_label.js";
import * as THREE from "three";
// The 9 surface slots the other devs fill. Lazy-loaded per tab.
const SURFACES = [
{ id: "integritycontrol", cat: "governance", short: "Integrity Control Plane", title: "Integrity Control Plane · read-only Waqay Security Loop + Claim Integrity manifests · PROPOSAL_ONLY boundary · effectors=0 · signatures honestly UNSIGNED until a real signer and external verifier exist", mod: "/static/3d/surfaces/integritycontrol.js" },
{ id: "atlas", cat: "map", flag: true, title: "Atlas", mod: "/static/3d/surfaces/atlas.js" },
{ id: "loopforge", cat: "brain", title: "Loop Forge · bounded kernel-gated recursion · separate referee halts invariant breaches · MODELED reward signals", mod: "/static/3d/surfaces/loopforge.js" },
{ id: "frontier", cat: "map", title: "Frontier", mod: "/static/3d/surfaces/frontier.js" },
{ id: "neuromorphic", cat: "more", title: "Neuromorphic", mod: "/static/3d/surfaces/neuromorphic.js" },
{ id: "interpretability", cat: "governance", title: "Interpretability", mod: "/static/3d/surfaces/interpretability.js" },
{ id: "circuits", cat: "governance", title: "Attribution Graph \u00b7 Circuit Tracing", mod: "/static/3d/surfaces/circuits.js" },
{ id: "worldmodel", cat: "attention", title: "World Model", mod: "/static/3d/surfaces/worldmodel.js" },
{ id: "qec", cat: "proof", title: "Topological QEC", mod: "/static/3d/surfaces/qec.js" },
{ id: "episodic", cat: "brain", title: "Episodic Memory", mod: "/static/3d/surfaces/episodic.js" },
{ id: "testtime", cat: "reasoning", title: "Test-Time Compute", mod: "/static/3d/surfaces/testtime.js" },
{ id: "ssm", cat: "attention", title: "State-Space (Mamba-3)", mod: "/static/3d/surfaces/ssm.js" },
{ id: "genie", cat: "attention", title: "Genie World-Model", mod: "/static/3d/surfaces/genie.js" },
{ id: "specdecode", cat: "attention", title: "Speculative Decoding", mod: "/static/3d/surfaces/specdecode.js" },
{ id: "flowmatch", cat: "attention", title: "Flow Matching", mod: "/static/3d/surfaces/flowmatch.js" },
{ id: "dllm", cat: "attention", title: "Diffusion LLM", mod: "/static/3d/surfaces/dllm.js" },
{ id: "moe", cat: "attention", title: "MoE Router", mod: "/static/3d/surfaces/moe.js" },
{ id: "formalmath", cat: "governance", title: "Formal-Math Retrieval", mod: "/static/3d/surfaces/formalmath.js" },
{ id: "ccattest", cat: "proof", title: "Confidential-Compute Attest", mod: "/static/3d/surfaces/ccattest.js" },
{ id: "attestinfer", cat: "proof", title: "Attested Inference", mod: "/static/3d/surfaces/attestinfer.js" },
{ id: "pcai", cat: "proof", title: "Proof-Carrying Attested Inference", mod: "/static/3d/surfaces/pcai.js" },
{ id: "ringattn", cat: "attention", title: "Ring Attention", mod: "/static/3d/surfaces/ringattn.js" },
{ id: "grpo", cat: "rl", title: "GRPO Reward Dynamics", mod: "/static/3d/surfaces/grpo.js" },
{ id: "kvcache", cat: "quant", title: "KV-Cache H2O", mod: "/static/3d/surfaces/kvcache.js" },
{ id: "mla", cat: "attention", title: "Latent Attention (MLA)", mod: "/static/3d/surfaces/mla.js" },
{ id: "blt", cat: "attention", title: "Byte-Latent Patching", mod: "/static/3d/surfaces/blt.js" },
{ id: "nsa", cat: "attention", title: "Native Sparse Attention", mod: "/static/3d/surfaces/nsa.js" },
{ id: "kan", cat: "attention", title: "Kolmogorov-Arnold Network", mod: "/static/3d/surfaces/kan.js" },
{ id: "steering", cat: "governance", title: "Steering Vectors (ActAdd / RepE)", mod: "/static/3d/surfaces/steering.js" },
{ id: "titans", cat: "brain", title: "Titans Neural Long-Term Memory", mod: "/static/3d/surfaces/titans.js" },
{ id: "mor", cat: "reasoning", title: "Mixture-of-Recursions (adaptive depth)", mod: "/static/3d/surfaces/mor.js" },
{ id: "goat", cat: "attention", title: "GOAT Optimal-Transport Attention", mod: "/static/3d/surfaces/goat.js" },
{ id: "kla", cat: "attention", title: "Kaczmarz Linear Attention", mod: "/static/3d/surfaces/kla.js" },
{ id: "hrm", cat: "reasoning", title: "Hierarchical Reasoning Model", mod: "/static/3d/surfaces/hrm.js" },
{ id: "pfield", cat: "anatomy", title: "Pressure-Field Coordination", mod: "/static/3d/surfaces/pfield.js" },
{ id: "qhall", cat: "governance", title: "Quantum-Inspired Hallucination UQ", mod: "/static/3d/surfaces/qhall.js" },
{ id: "aimc", cat: "attention", title: "Analog In-Memory Attention", mod: "/static/3d/surfaces/aimc.js" },
{ id: "ternary", cat: "quant", title: "Ternary 1.58-bit Weights", mod: "/static/3d/surfaces/ternary.js" },
{ id: "sement", cat: "governance", title: "Semantic-Entropy Uncertainty", mod: "/static/3d/surfaces/sement.js" },
{ id: "inplacettt", cat: "reasoning", title: "In-Place Test-Time Training", mod: "/static/3d/surfaces/inplacettt.js" },
{ id: "nested", cat: "brain", title: "Nested Learning (multi-timescale)", mod: "/static/3d/surfaces/nested.js" },
{ id: "matgran", cat: "brain", title: "Matryoshka Representation Granularity", mod: "/static/3d/surfaces/matgran.js" },
{ id: "graphmem", cat: "brain", title: "Multi-Graph Agentic Memory", mod: "/static/3d/surfaces/graphmem.js" },
{ id: "elf", cat: "attention", title: "Continuous-Embedding Flow LM", mod: "/static/3d/surfaces/elf.js" },
{ id: "s3search", cat: "quant", title: "Stratified Denoise Search", mod: "/static/3d/surfaces/s3search.js" },
{ id: "slidesparse", cat: "quant", title: "Structured-Sparse Layout Packing", mod: "/static/3d/surfaces/slidesparse.js" },
{ id: "catq", cat: "quant", title: "Calibration Ternary Quant", mod: "/static/3d/surfaces/catq.js" },
{ id: "rauq", cat: "governance", title: "Attention-Pattern Uncertainty", mod: "/static/3d/surfaces/rauq.js" },
{ id: "agentcoh", cat: "brain", title: "Multi-Agent Memory Coherence", mod: "/static/3d/surfaces/agentcoh.js" },
{ id: "energy", cat: "energy", title: "Energy", mod: "/static/3d/surfaces/energy.js" },
{ id: "fabric", cat: "defense", title: "Fabric", mod: "/static/3d/surfaces/fabric.js" },
{ id: "pnt", cat: "defense", title: "PNT", mod: "/static/3d/surfaces/pnt.js" },
{ id: "counter-uas", cat: "defense", title: "Counter-UAS", mod: "/static/3d/surfaces/counter-uas.js" },
{ id: "governance", cat: "governance", flag: true, title: "Governance", mod: "/static/3d/surfaces/governance.js" },
{ id: "pinn", cat: "defense", title: "PINN", mod: "/static/3d/surfaces/pinn.js" },
{ id: "router", cat: "defense", title: "Router", mod: "/static/3d/surfaces/router.js" },
{ id: "anatomy", cat: "anatomy", title: "Anatomy", mod: "/static/3d/surfaces/anatomy.js" },
{ id: "anatomy_body", cat: "anatomy", flag: true, title: "Anatomy · Living Body", mod: "/static/3d/surfaces/anatomy_body.js" },
{ id: "estate", cat: "map", title: "Estate", mod: "/static/3d/surfaces/estate.js" },
{ id: "muon", cat: "attention", title: "Muon Orthogonalized-Momentum Optimizer", mod: "/static/3d/surfaces/muon.js" },
{ id: "specexec", cat: "attention", title: "Tree Speculative Execution", mod: "/static/3d/surfaces/specexec.js" },
{ id: "nvfp4", cat: "quant", title: "NVFP4 4-bit Training Format", mod: "/static/3d/surfaces/nvfp4.js" },
{ id: "keyless", cat: "attention", title: "Keyless Attention (Value-Only Cache)", mod: "/static/3d/surfaces/keyless.js" },
{ id: "gitthoughts", cat: "reasoning", title: "GitOfThoughts (Version-Controlled Reasoning)", mod: "/static/3d/surfaces/gitthoughts.js" },
{ id: "herotq", cat: "quant", title: "HeRo-Q Hessian-Conditioned Quantization", mod: "/static/3d/surfaces/herotq.js" },
{ id: "dla", cat: "attention", title: "Dynamic Linear Attention", mod: "/static/3d/surfaces/dla.js" },
{ id: "ctxready", cat: "reasoning", title: "Context-Ready Transformer", mod: "/static/3d/surfaces/ctxready.js" },
{ id: "opera", cat: "reasoning", title: "OPERA Perplexity-Reward Alignment", mod: "/static/3d/surfaces/opera.js" },
{ id: "brain", cat: "brain", flag: true, title: "Brain — live knowledge graph", mod: "/static/3d/surfaces/brain.js" },
{ id: "zkinfer", cat: "proof", title: "zkML Proof-of-Inference (Cryptographic Receipts)", mod: "/static/3d/surfaces/zkinfer.js" },
{ id: "flower", cat: "brain", title: "Flower Brain", mod: "/static/3d/surfaces/flower.js" },
{ id: "agentmem", cat: "brain", title: "AgentMem · Λ-Governed Agent Memory (synthesis)", mod: "/static/3d/surfaces/agentmem.js" },
{ id: "edgefusion", cat: "energy", title: "EdgeFusion · Λ-Gated Energy-Proportional Sensor Fusion (synthesis)", mod: "/static/3d/surfaces/edgefusion.js" },
{ id: "evalarena", cat: "governance", flag: true, title: "Eval Arena · Governed Eval / Red-Team", mod: "/static/3d/surfaces/evalarena.js" },
{ id: "vqc", cat: "energy", title: "Governed VQC · Parameter-Shift Hybrid QML (MODELED)", mod: "/static/3d/surfaces/vqc.js" },
{ id: "harness", cat: "governance", title: "Governed Model Harness · Behavior Transfer", mod: "/static/3d/surfaces/harness.js" },
{ id: "aigov", cat: "governance", title: "AI Governance Conformance · Λ-Advisory Readiness (crosswalk)", mod: "/static/3d/surfaces/aigov.js" },
{ id: "fmverif", cat: "proof", title: "Proof-Carrying Inference (Machine-Checkable Certificates)", mod: "/static/3d/surfaces/fmverif.js" },
{ id: "supplychain", cat: "proof", title: "Model-Artifact Provenance (SLSA / in-toto / Rekor / C2PA)", mod: "/static/3d/surfaces/supplychain.js" },
{ id: "hybridssm", cat: "attention", title: "HybridSSM · Attention vs State-Space vs Hybrid Frontier (synthesis)", mod: "/static/3d/surfaces/hybridssm.js" },
{ id: "governedagent", cat: "reasoning", title: "Governed Agent Loop · plan→act→self-eval→gate→retry", mod: "/static/3d/surfaces/governedagent.js" },
{ id: "governedrag", cat: "reasoning", title: "Governed RAG · Retrieval-with-Receipts", mod: "/static/3d/surfaces/governedrag.js" },
{ id: "ecosystem", cat: "defense", flag: true, title: "Harness · Ecosystem Status", mod: "/static/3d/surfaces/ecosystem.js" },
{ id: "brainquery", cat: "brain", flag: true, title: "Brain Query · ask the graph (retrieval)", mod: "/static/3d/surfaces/brainquery.js" },
{ id: "sovereign", cat: "energy", flag: true, title: "Sovereign Local Model · status · doctrine self-test · Stage A/B · signed receipt", mod: "/static/3d/surfaces/sovereign.js" },
{ id: "brainbody", cat: "anatomy", title: "Anatomy \u00b7 Body lit by the Brain (pulse + energy)", mod: "/static/3d/surfaces/brainbody.js" },
{ id: "braincommand", cat: "brain", title: "Brain Command · pulse · subscribe/budget · signed receipt (Brain powering the ecosystem)", mod: "/static/3d/surfaces/braincommand.js" },
{ id: "mesh", cat: "defense", title: "Sovereign Mesh · Cross-Node Orchestration (status/route/quorum)", mod: "/static/3d/surfaces/mesh.js" },
{ id: "agenttts", cat: "reasoning", title: "Agent Test-Time Compute · Multi-Agent TTC (live)", mod: "/static/3d/surfaces/agenttts.js" },
{ id: "cryptopipeline", cat: "proof", title: "Crypto-Pipeline · End-to-End AI Lifecycle Verifiable Transcript (MODELED)", mod: "/static/3d/surfaces/cryptopipeline.js" },
{ id: "gateddelta", cat: "attention", title: "Gated Delta-Rule Linear Attention · state recall (MODELED)", mod: "/static/3d/surfaces/gateddelta.js" },
{ id: "agentops", cat: "reasoning", title: "Agent Ops · bounded operate loop (ground→act→self-eval→gate, Ouroboros-bounded, writer≠judge)", mod: "/static/3d/surfaces/agentops.js" },
{ id: "lgmi", cat: "governance", title: "LGMI · Λ-Governed Mechanistic Interpretability (synthesis)", mod: "/static/3d/surfaces/lgmi.js" },
{ id: "gnqs", cat: "quant", title: "GNQS · Governed-Norm Quantization Stability (synthesis)", mod: "/static/3d/surfaces/gnqs.js" },
{ id: "numericsdataset", cat: "quant", title: "Numerics Dataset · 1,328 frozen matrix cases + append-only engine evidence · preregistered inputs are never shown as measured results · MATCH/CONFLICT/UNAVAILABLE · proof uplift=0", mod: "/static/3d/surfaces/numericsdataset.js" },
{ id: "casta", cat: "defense", title: "CASTA · Clean-room Anomaly × Streaming Test-time Adaptation (synthesis)", mod: "/static/3d/surfaces/casta.js" },
{ id: "frontierindex", cat: "brain", title: "Frontier Index · honest ecosystem catalog · per-surface backend label + citations + native/fallback (self-audited)", mod: "/static/3d/surfaces/frontierindex.js" },
{ id: "sparsemoe", cat: "quant", title: "Extreme-Sparsity MoE Analyzer · activation-ratio ↔ inference-cost tradeoff (STRUCTURAL-ONLY)", mod: "/static/3d/surfaces/sparsemoe.js" },
{ id: "pddisagg", cat: "defense", title: "Prefill/Decode Disaggregation Map · colocated vs disaggregated latency across the mesh (STRUCTURAL-ONLY/ROADMAP)", mod: "/static/3d/surfaces/pddisagg.js" },
{ id: "execverify", cat: "reasoning", title: "Execution-Verified Synthesis Loop · eval → verified trajectory → corpus candidate → receipt (STRUCTURAL-ONLY)", mod: "/static/3d/surfaces/execverify.js" },
{ id: "opsdash", cat: "governance", flag: true, title: "Ops Dashboard · live estate health · GREEN/DEGRADED/UNAVAILABLE rollup + per-surface honest labels + /verify", mod: "/static/3d/surfaces/opsdash.js" },
{ id: "flowbrain", cat: "brain", flag: true, title: "FlowBrain · continuous belief-flow lens · tiers as thresholds crossed on x_t∈[0,1] + 1D-time⊗1D-node axis-factorization (STRUCTURAL-ONLY; borrows B[FM]² continuous-flow principle, NO EEG)", mod: "/static/3d/surfaces/flowbrain.js" },
{ id: "blocksparse", cat: "attention", title: "Learned Blockwise Top-k KV Sparse Attention · selection (MODELED)", mod: "/static/3d/surfaces/blocksparse.js" },
{ id: "confattest", cat: "governance", title: "Confidential-Compute Attestation + Action Gate · SIMULATED enclave quote → receipt · govern ACTIONS not reasoning (MODELED)", mod: "/static/3d/surfaces/confattest.js" },
{ id: "retrievalattn", cat: "attention", title: "Retrieval-Modulated Long-Context Attention · needle recall (MODELED)", mod: "/static/3d/surfaces/retrievalattn.js" },
{ id: "whatsnew", cat: "brain", title: "What's New · honest auto-derived estate changelog · recently-added surfaces w/ verbatim labels + citations from real git history (drift-proof)", mod: "/static/3d/surfaces/whatsnew.js" },
{ id: "honestywall", cat: "governance", title: "Honesty Wall · live integrity aggregation · reads each surface's OWN honest label VERBATIM + estate honesty invariants → INTACT/DEGRADED/VIOLATED verdict, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/honestywall.js" },
{ id: "agentos", cat: "governance", flag: true, title: "Agent OS Map · live self-honest operator's-eye map of the agent OS · nodes (daily loop←agentops, trust ledger←anatomy+receipts+honestywall, standing goals←doctrine+locked-8, optional loops←governedagent/governedrag/loopforge/mesh) with LIVE per-node verdict from the honestywall aggregate → OPERATING/DEGRADED/HALTED-HONEST, never OPERATING if anything VIOLATED, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/agentos.js" },
{ id: "brainground", cat: "brain", title: "Brainground · grounding-confidence + honest abstention over brain retrieval · scores the brain's REAL grounding_subgraph (seed coverage · subgraph cohesion · salience mass · community consistency) → GROUNDED/WEAK-GROUNDING/INSUFFICIENT-GROUNDING, brain abstains when grounding is weak, MODELED (never MEASURED), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainground.js" },
{ id: "brainmemory", cat: "brain", title: "Brain Memory Freshness · honest episodic decay proxy over the knowledge graph · deterministic per-node freshness (recency + structure when a real timestamp exists, else STRUCTURAL-ONLY connectivity+salience proxy, never a fabricated timestamp) -> FRESH/AGING/STALE, STALE flagged for re-harvest, unsigned SHA-256 receipt-on-write (drift-proof)", mod: "/static/3d/surfaces/brainmemory.js" },
{ id: "brainprovenance", cat: "brain", title: "Brain Provenance · per-answer source-lineage chain · which knowledge-graph nodes supported the answer, each node's OWN label VERBATIM + contribution_weight + coverage (HARVESTED/MODELED/UNAVAILABLE) → TRACEABLE/PARTIAL-PROVENANCE/UNTRACEABLE, never TRACEABLE while any node UNAVAILABLE, unsigned SHA-256 receipt-on-write (source-lineage of an answer, NOT build/model attestation)", mod: "/static/3d/surfaces/brainprovenance.js" },
{ id: "braincontradict", cat: "brain", flag: true, title: "Brain Contradiction Detector · surfaces potential contradictions between grounded knowledge-graph claims HONESTLY via transparent deterministic heuristics (negation polarity / antonym opposition / numeric conflict) → NO-CONFLICT/POSSIBLE-CONFLICT/CONFLICT-FLAGGED · PRESENTS conflicts, NEVER resolves them (adjudication=human-required), unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/braincontradict.js" },
{ id: "brainuncertainty", cat: "brain", title: "Brain Uncertainty · calibrated honest uncertainty on a brain retrieval · reads the same honest ranked retrieval and derives score dispersion + retrieval entropy + rank stability → one uncertainty in [0,1] with a CONFIDENT/UNCERTAIN/HIGHLY-UNCERTAIN verdict (recommends abstain), never CONFIDENT when dispersion/entropy high, MODELED calibration honesty not a probability, unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainuncertainty.js" },
{ id: "brainhealth", cat: "brain", title: "Brain Health · live \"can the brain be trusted for this query right now?\" rollup · reads each brain-honesty surface's OWN label VERBATIM (grounding, freshness, provenance, contradiction, uncertainty), degrades absent siblings to UNAVAILABLE → TRUSTWORTHY/DEGRADED/UNTRUSTWORTHY/INSUFFICIENT-SIGNAL, never TRUSTWORTHY if any available component abstains, unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/brainhealth.js" },
{ id: "brainreranker", cat: "brain", flag: true, title: "Anatomy v6 · Brain evidence inventory, reranker readiness, and bounded Ouroboros local-feed receipts · every raw node receives an admission/quarantine decision · zero proposal rows while canonical manifests are absent", mod: "/static/3d/surfaces/brainreranker.js" },
{ id: "brainwatch", cat: "brain", title: "Brain Watch · knowledge-graph honesty-posture drift monitor · MEASURED label-distribution/orphan/community/salience snapshot vs a caller-supplied PRIOR → STABLE/DRIFTING/DEGRADED/BASELINE-ONLY (no fabricated trend without a real prior), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainwatch.js" },
{ id: "brainconsensus", cat: "brain", title: "Brain Consensus · honest corroboration of a brain grounding · measures how MANY distinct nodes support a query and how many distinct communities they span (cross-community agreement is stronger than one clique) → CORROBORATED/WEAK-CORROBORATION/SINGLE-SOURCE, single-source-risk flag when support collapses to one node/community, never CORROBORATED while that flag is set, MODELED corroboration honesty not a truth guarantee, unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainconsensus.js" },
{ id: "brainqueryaudit", cat: "brain", title: "Brain Query Audit · append-only hash-linked ledger of brain queries + the honest verdict each returned · POST appends {query, verdict, grounding_label} and mints an UNSIGNED SHA-256 receipt chained to the prior entry (tamper-evident); GET recomputes the whole chain → CHAIN-INTACT/CHAIN-BROKEN (never softened), ephemeral in-memory ledger labelled honestly, MODELED, receipt-on-write-not-on-read", mod: "/static/3d/surfaces/brainqueryaudit.js" },
{ id: "brainlineage", cat: "brain", title: "Brain Lineage · node-origin chain · how each knowledge-graph node ENTERED the graph, read VERBATIM from its OWN real origin fields (source/url → structural derivation → none) → TRACED/PARTIAL-LINEAGE/UNKNOWN-ORIGIN, a node with no source is UNKNOWN-ORIGIN never a fabricated source, aggregate never TRACED while any origin UNKNOWN, unsigned SHA-256 receipt-on-write (node-origin lineage, NOT per-answer provenance, NOT build/model attestation)", mod: "/static/3d/surfaces/brainlineage.js" },
{ id: "brainexplain", cat: "brain", title: "Brain Explain · transparent explanation of WHY the brain retrieved what it did · MODELED descriptive trace over the REAL retrieval subgraph (which query terms matched which seed nodes, per-node ppr-vs-salience rationale, communities traversed, each node's OWN label VERBATIM) → EXPLAINABLE/PARTIALLY-EXPLAINABLE/OPAQUE (never invents a rationale; honest OPAQUE beats a fake one), unsigned SHA-256 receipt-on-write", mod: "/static/3d/surfaces/brainexplain.js" },
{ id: "braingaps", cat: "brain", title: "Brain Gaps · an honest map of what the brain does NOT know · MEASURED thin (sparse) communities + weakly-connected island nodes (degree≤1) + weak-label share over the live graph, and per-query COVERED/THIN/GAP grounding → estate verdict WELL-COVERED/PATCHY/SPARSE (a GAP is never fabricated into coverage), unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/braingaps.js" },
{ id: "brainconstitution", cat: "brain", title: "Brain Constitution · the honest, machine-checkable ruleset the brain is graded against per query · an explicit ordered set of ARTICLES (grounding sufficiency, calibrated confidence, honest corroboration, contradictions surfaced, traceable to source, freshness honesty, coverage gaps admitted, doctrine invariants) each graded COMPLIANT/VIOLATED/UNAVAILABLE against whatever sibling brain-honesty surfaces are importable (an absent surface is UNAVAILABLE, never a fabricated pass) → CONSTITUTIONAL/IN-VIOLATION/INSUFFICIENT-SIGNAL, never CONSTITUTIONAL while any evaluable Article is VIOLATED, unsigned SHA-256 receipt-on-write (MODELED)", mod: "/static/3d/surfaces/brainconstitution.js" },
{ id: "markets", cat: "finance", flag: true, title: "Markets & Finance · live Polymarket prediction book (top markets by 24h volume, pillar height = 24h vol, bead = YES probability) + crypto majors orbiting by market cap · 100% MEASURED same-origin deva finance feeds, no mocked spend/keys, log-scaling is display-only", mod: "/static/3d/surfaces/finance.js" },
{ id: "leaders", cat: "more", flag: true, title: "Frontier Models · Live AI Leaders · MEASURED live OpenRouter model catalog — one pillar per lab (height = max context window, bead = open/free share); widest-context models orbit as satellites (teal = free, amber = paid); log-scaling is display-only, no invented benchmark or ranking", mod: "/static/3d/surfaces/leaders.js" },
{ id: "research", cat: "more", flag: true, title: "Frontier Research · Live arXiv AI · MEASURED live arXiv submission stream (cs.AI/LG/CL/CV/NE) — one pillar per research category (height = fresh-paper count, bead = share of the window); most-recent papers orbit as satellites sized by author count; log-scaling is display-only, no citation count, score, or ranking", mod: "/static/3d/surfaces/research.js" },
{ id: "open", cat: "more", flag: true, title: "Open Frontier · Live Hugging Face · MEASURED live Hugging Face Hub trending stream — one pillar per org/author (height = summed likes, bead = download reach); most-liked open models orbit as satellites coloured by task; log-scaling is display-only, no invented benchmark, score, or ranking beyond the Hub’s own", mod: "/static/3d/surfaces/open.js" },
{ id: "brainagent", cat: "brain", title: "Brain Agent · honesty-gated agentic graph reasoner · treats the brain graph as a state space and walks it one node at a time for a query, choosing EXPAND/FOLLOW/BACKTRACK/STOP by pure graph heuristics (no model call, fully deterministic); every candidate hop passes an honesty gate built from the sibling surfaces (grounding, provenance, contradiction, uncertainty) — an ungrounded/untraceable/contradicted/uncertain hop is refused with a recorded reason, an absent guard is UNAVAILABLE never a fabricated pass; within an explicit step/node budget it returns ANSWER-GROUNDED/PARTIAL or abstains ABSTAINED-BUDGET/ABSTAINED-INSUFFICIENT rather than answer under-grounded, emits an ordered trace + unsigned SHA-256 receipt-on-write, makes no sentience claim (MODELED)", mod: "/static/3d/surfaces/brainagent.js" },
];
const stageEl = document.getElementById("stage");
const tabsEl = document.getElementById("tabs");
const fallbackEl = document.getElementById("fallback");
document.getElementById("three-rev").textContent = THREE.REVISION;
let stage = null;
let current = null; // { def, instance }
let loadToken = 0;
// WebGPU opt-in: seeded from ?webgpu=1, flippable live via the header toggle. WebGPU is not
// production-safe on all browsers/drivers yet (doctrine) so WebGL2 stays the default; the
// toolkit's probe is timeout-guarded and falls back honestly if no device is available.
let wantWebGPU = /[?&]webgpu=1\b/.test(location.search);
async function ensureStage() {
if (stage) return stage;
try {
stage = await szl3d.boot(stageEl, {
bloom: { strength: 0.85, radius: 0.5, threshold: 0.18 },
cameraPos: [0, 5, 16],
forceWebGL: !wantWebGPU,
});
document.getElementById("backend").textContent = "renderer: " + stage.backend.toUpperCase();
_syncGpuToggle();
stage.start();
} catch (e) {
fallbackEl.style.display = "flex";
document.getElementById("backend").textContent = "renderer: UNAVAILABLE";
console.error("[holographic] stage boot failed:", e);
throw e;
}
return stage;
}
function _syncGpuToggle() {
const btn = document.getElementById("gpu-toggle");
if (!btn) return;
const on = stage && stage.backend === "webgpu";
btn.textContent = "\u26a1 WebGPU: " + (on ? "on" : (wantWebGPU ? "requested" : "off"));
btn.style.color = on ? "var(--proof, #3af4c8)" : "var(--gold)";
btn.style.borderColor = on ? "var(--teal)" : "var(--line)";
}
// Tear down the current stage + surface and re-boot with the new renderer preference, then
// re-mount the active surface. Used by the header WebGPU toggle so users can engage the
// compute path on capable browsers without editing the URL.
async function rebootStage() {
const active = current ? current.def.id : (SURFACES[0] && SURFACES[0].id);
try { if (current && current.instance && current.instance.unmount) current.instance.unmount(); } catch (_) {}
current = null;
try { if (stage && stage.dispose) stage.dispose(); } catch (_) {}
stage = null;
// The toolkit's dispose() releases the GL context but leaves its <canvas> in the DOM;
// a fresh boot() appends a new one. Remove the orphaned canvas(es) here so a toggle
// never accumulates duplicate canvases / leaked contexts.
try { stageEl.querySelectorAll("canvas").forEach((c) => c.remove()); } catch (_) {}
fallbackEl.style.display = "none";
await selectSurface(active, "none");
}
function clearScene() {
if (!stage) return;
// Remove everything the previous surface added except the default lights.
const keep = new Set();
stage.scene.traverse((o) => { if (o.isLight) keep.add(o); });
for (let i = stage.scene.children.length - 1; i >= 0; i--) {
const o = stage.scene.children[i];
if (!keep.has(o)) stage.scene.remove(o);
}
// reset per-frame callbacks by re-booting frame list is overkill; surfaces guard on null.
}
async function selectSurface(id, historyMode = "replace") {
const def = SURFACES.find((s) => s.id === id);
if (!def) return;
if (current && current.def && current.def.id === id) {
_highlight(id);
if (historyMode === "replace" && location.hash !== "#" + id) {
history.replaceState(null, "", "#" + id);
}
return;
}
const token = ++loadToken;
// visual selection state: mark every tab button with this id (a flagship appears both in
// the ★ Featured row and inside its category panel), auto-open the active category, and
// proof-teal-flag the owning dropdown button.
_highlight(id);
// one-line honest caption: the FULL verbatim title of the active surface (hover for wrap-free read)
{ const cap = document.getElementById("surface-caption");
if (cap) { cap.textContent = def.title; cap.title = def.title; } }
await ensureStage();
// tear down previous
if (current && current.instance && current.instance.unmount) {
try { current.instance.unmount(); } catch (_) {}
}
clearScene();
let mod;
try { mod = await import(def.mod); }
catch (e) { console.error("[holographic] failed to load surface", id, e); return; }
if (token !== loadToken) return; // a newer tab click superseded us
const surface = mod.default || mod;
const ctx = { stage, container: stageEl, live, label, THREE, szl3d };
try {
surface.mount(ctx);
current = { def, instance: surface };
if (historyMode === "push") history.pushState(null, "", "#" + id);
else if (historyMode === "replace") history.replaceState(null, "", "#" + id);
} catch (e) {
console.error("[holographic] surface mount threw", id, e);
}
}
// ---- grouped nav: pinned ★ Featured row + collapsible category dropdowns ----
// Category display order + labels (spec taxonomy). Only categories with >=1 surface are
// rendered; any surface without a `cat` falls to "more" (safety net — never dropped).
const CATS = [
["map", "Map"],
["brain", "Brain & Memory"],
["anatomy", "Anatomy & Living System"],
["reasoning", "Reasoning & Agents"],
["attention", "Attention & Architecture"],
["quant", "Quantization & Efficiency"],
["governance", "Governance & Assurance"],
["proof", "Proof & Attestation"],
["energy", "Energy & Sovereign"],
["defense", "Defense & Fleet"],
["finance", "Finance & Markets"],
["rl", "RL & Training"],
["more", "More"],
];
const catOf = (s) => s.cat || "more";
const featuredRow = document.getElementById("featured-row");
const catRow = document.getElementById("cat-row");
const catPanels = document.getElementById("cat-panels");
const searchInput = document.getElementById("surface-search");
const searchPanel = document.getElementById("search-panel");
const searchCount = document.getElementById("surface-results-count");
const navMode = document.getElementById("nav-mode");
const activeSurface = document.querySelector("#active-surface strong");
const estateObservationBadge = document.getElementById("estate-observation-badge");
const evidenceRail = document.getElementById("evidence-rail");
const evidenceToggle = document.getElementById("evidence-rail-toggle");
const evidencePanel = document.getElementById("evidence-rail-panel");
const evidenceState = document.getElementById("evidence-rail-state");
const evidenceTitle = document.getElementById("evidence-rail-title");
const evidenceId = document.getElementById("evidence-rail-id");
const evidenceContract = document.getElementById("evidence-rail-contract");
const evidenceRuntime = document.getElementById("evidence-rail-runtime");
const evidenceReadiness = document.getElementById("evidence-rail-readiness");
const EVIDENCE_MAX_AGE_MS = 24 * 60 * 60 * 1000;
const EVIDENCE_REFRESH_INTERVAL_MS = 5 * 60 * 1000;
let evidenceSnapshotPromise = null;
let evidenceRefreshTimer = null;
let evidenceRefreshGeneration = 0;
if (evidenceToggle && evidencePanel) {
evidenceToggle.addEventListener("click", () => {
const open = evidenceToggle.getAttribute("aria-expanded") !== "true";
evidenceToggle.setAttribute("aria-expanded", String(open));
evidencePanel.hidden = !open;
});
document.addEventListener("keydown", (event) => {
if (event.key === "Escape" && !evidencePanel.hidden) {
evidenceToggle.setAttribute("aria-expanded", "false");
evidencePanel.hidden = true;
evidenceToggle.focus();
}
});
}
async function _fetchEvidenceSnapshot(forceRefresh = false) {
if (forceRefresh) {
evidenceRefreshGeneration += 1;
evidenceSnapshotPromise = null;
}
if (evidenceSnapshotPromise) return evidenceSnapshotPromise;
const generation = evidenceRefreshGeneration;
evidenceSnapshotPromise = (async () => {
const getJson = async (url) => {
try {
const response = await fetch(url, {method:"GET",headers:{accept:"application/json"},cache:"no-store"});
return response.ok ? await response.json() : null;
} catch (_) { return null; }
};
const [readiness, build] = await Promise.all([
getJson("/api/a11oy/v1/readiness/tab-matrix?view=summary"),
getJson("/api/build-info"),
]);
return { readiness, build, generation };
})();
return evidenceSnapshotPromise;
}
function _hasObservedEvidence(readiness, revision, nowMs = Date.now()) {
if (
typeof revision !== "string" ||
!/^[0-9a-f]{40}$/.test(revision) ||
readiness?.honest !== true ||
readiness?.view !== "summary" ||
readiness?.available !== true ||
readiness?.matrix_available !== true ||
readiness?.probe_verdict_available !== true ||
readiness?.verdict_source_revision !== revision ||
typeof readiness?.verdict_base !== "string" ||
!/^https:\/\/[^/]+$/.test(readiness.verdict_base) ||
readiness?.verdict_base !== readiness?.verdict_expected_base
) return false;
const checkedAt = readiness?.verdict_checked_at;
if (
typeof checkedAt !== "string" ||
!/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?Z$/.test(checkedAt)
) return false;
const checkedMs = Date.parse(checkedAt);
if (
!Number.isFinite(checkedMs) ||
checkedMs > nowMs ||
nowMs - checkedMs > EVIDENCE_MAX_AGE_MS
) return false;
const verdict = readiness?.verdict_summary;
if (!verdict || typeof verdict !== "object") return false;
const counts = [
"endpoints", "ok", "skippedStateChanging", "lies", "unreachable", "throttled",
]
.map((field) => verdict[field]);
if (!counts.every((value) => Number.isInteger(value) && value >= 0)) return false;
if (!Number.isFinite(verdict.p95_worst) || verdict.p95_worst < 0) return false;
const [endpoints, ...outcomes] = counts;
const executed = endpoints - verdict.skippedStateChanging;
return (
endpoints > 0 &&
executed > 0 &&
verdict.lies === 0 &&
outcomes.reduce((total, value) => total + value, 0) === endpoints
);
}
function _readinessEvidenceText(readiness, observed) {
const matrix = readiness?.matrix_summary || {};
const verdict = readiness?.verdict_summary || null;
if (!observed || !verdict) {
return `${matrix.tabs ?? SURFACES.length} surfaces · probe UNVERIFIED`;
}
return `${verdict.ok}/${verdict.endpoints} clean · complete verdict`;
}
function _nextEvidenceRefreshDelay(readiness, nowMs = Date.now()) {
const checkedMs = Date.parse(readiness?.verdict_checked_at || "");
if (!Number.isFinite(checkedMs)) return EVIDENCE_REFRESH_INTERVAL_MS;
const untilExpiry = checkedMs + EVIDENCE_MAX_AGE_MS - nowMs;
if (untilExpiry < 0) return EVIDENCE_REFRESH_INTERVAL_MS;
return Math.max(
50,
Math.min(EVIDENCE_REFRESH_INTERVAL_MS, untilExpiry + 50),
);
}
function _scheduleEvidenceRefresh(def, readiness) {
if (evidenceRefreshTimer) clearTimeout(evidenceRefreshTimer);
evidenceRefreshTimer = setTimeout(
() => _updateEvidenceRail(def, true),
_nextEvidenceRefreshDelay(readiness),
);
}
function _updateEvidenceRail(def, forceRefresh = false) {
if (!evidenceRail || !def) return;
evidenceRail.dataset.state = "UNVERIFIED";
if (evidenceState) evidenceState.textContent = "UNVERIFIED";
if (estateObservationBadge) {
estateObservationBadge.dataset.state = "UNVERIFIED";
estateObservationBadge.textContent = "Evidence status: UNVERIFIED";
}
if (evidenceTitle) evidenceTitle.textContent = def.title;
if (evidenceId) evidenceId.textContent = def.id;
if (evidenceContract) evidenceContract.textContent = `${catOf(def)} · ${def.mod}`;
if (evidenceRuntime) evidenceRuntime.textContent = "CHECKING";
if (evidenceReadiness) evidenceReadiness.textContent = "CHECKING";
_fetchEvidenceSnapshot(forceRefresh).then(({ readiness, build, generation }) => {
if (generation !== evidenceRefreshGeneration) return;
const buildState = build?.build?.state || build?.state || "UNAVAILABLE";
const revision = build?.build?.revision || build?.revision || null;
if (evidenceRuntime) evidenceRuntime.textContent = revision ? `${buildState} · ${String(revision).slice(0,12)}…` : buildState;
const observed = _hasObservedEvidence(readiness, revision);
if (evidenceReadiness) {
evidenceReadiness.textContent = _readinessEvidenceText(readiness, observed);
}
evidenceRail.dataset.state = observed ? "OBSERVED" : "UNVERIFIED";
if (evidenceState) evidenceState.textContent = observed ? "OBSERVED" : "UNVERIFIED";
if (estateObservationBadge) {
estateObservationBadge.dataset.state = observed ? "OBSERVED" : "UNVERIFIED";
estateObservationBadge.textContent = observed
? "The estate, observed—not assumed."
: "Evidence status: UNVERIFIED";
}
_scheduleEvidenceRefresh(def, readiness);
});
}
function _resumeEvidenceRefresh() {
if (document.hidden || !current?.def) return;
_updateEvidenceRail(current.def, true);
}
document.addEventListener("visibilitychange", _resumeEvidenceRefresh);
window.addEventListener("pageshow", _resumeEvidenceRefresh);
const _panels = {}; // cat -> drop-panel element
const _catBtns = {}; // cat -> dropdown button
let searchLimit = 36;
function _clearSearch() {
searchLimit = 36;
if (searchInput) searchInput.value = "";
if (searchPanel) { searchPanel.textContent = ""; searchPanel.dataset.open = "false"; }
if (searchCount) searchCount.textContent = SURFACES.length + " surfaces indexed";
}
// Command-center default: the graph owns the viewport. The complete registry remains one
// click away in an overlay drawer and every surface remains indexed by the search field.
function _setBrowser(open) {
const on = !!open;
tabsEl.dataset.browse = String(on);
if (navMode) {
navMode.setAttribute("aria-expanded", String(on));
navMode.textContent = on ? "Close browser" : "Browse surfaces";
}
if (!on) openCategory("", false);
}
// Short pill label: first 1-2 " · "-separated segments of the honest title, capped.
// The FULL honest title is preserved verbatim in the tooltip (b.title) and in the
// footer caption when the surface is selected — nothing is dropped, only de-cluttered.
function _shortLabel(s) {
if (s.short) return s.short;
const parts = String(s.title).split(/\s*(?:·|—)\s*/).filter(Boolean);
let label = parts[0] || String(s.title);
if (parts[1] && (label.length + parts[1].length + 3) <= 36) label += " · " + parts[1];
if (label.length > 42) label = label.slice(0, 39).replace(/\s+\S*$/, "") + "…";
return label;
}
function _makeTab(s, feat) {
const b = document.createElement("a");
b.className = "tab" + (feat ? " tab--feat" : "");
b.href = "#" + s.id;
b.dataset.id = s.id; b.dataset.cat = catOf(s);
b.title = s.title; // full honest title on hover
b.setAttribute("aria-label", s.title);
if (feat) {
const star = document.createElement("span"); star.className = "star"; star.textContent = "★";
b.appendChild(star); b.appendChild(document.createTextNode(_shortLabel(s)));
} else {
b.textContent = _shortLabel(s);
}
b.addEventListener("click", (ev) => {
ev.preventDefault();
selectSurface(s.id, "push");
_clearSearch();
_setBrowser(false);
openCategory(catOf(s), false);
// On the mobile horizontal strips, keep the tapped tab in view.
try { b.scrollIntoView({ behavior: "smooth", inline: "center", block: "nearest" }); } catch (_) {}
});
b.addEventListener("keydown", (ev) => {
if (!["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"].includes(ev.key)) return;
const peers = Array.from(b.parentElement?.querySelectorAll("[data-id]") || []);
if (!peers.length) return;
const here = Math.max(0, peers.indexOf(b));
let next = here;
if (ev.key === "Home") next = 0;
else if (ev.key === "End") next = peers.length - 1;
else if (ev.key === "ArrowLeft" || ev.key === "ArrowUp") next = (here - 1 + peers.length) % peers.length;
else next = (here + 1) % peers.length;
ev.preventDefault();
peers[next].focus();
});
return b;
}
// Open exactly one category panel (or close all when open=false). One open at a time.
function openCategory(cat, open) {
Object.keys(_panels).forEach((c) => {
const on = (c === cat) ? open : false;
_panels[c].dataset.open = String(on);
if (_catBtns[c]) _catBtns[c].setAttribute("aria-expanded", String(on));
});
}
// (a) pinned Featured row — flagships (incl. Atlas), always visible above the dropdowns.
SURFACES.filter((s) => s.flag).forEach((s) => featuredRow.appendChild(_makeTab(s, true)));
// (b) category dropdown buttons + their drop panels.
CATS.forEach(([cat, label]) => {
const items = SURFACES.filter((s) => catOf(s) === cat);
if (!items.length) return;
const btn = document.createElement("button");
btn.className = "catbtn"; btn.type = "button";
btn.dataset.cat = cat; btn.setAttribute("aria-expanded", "false");
btn.id = "category-" + cat;
const caret = document.createElement("span"); caret.className = "caret"; caret.textContent = "▸";
btn.appendChild(caret);
btn.appendChild(document.createTextNode(label + " "));
const cnt = document.createElement("span"); cnt.className = "count"; cnt.textContent = String(items.length);
btn.appendChild(cnt);
const panel = document.createElement("div");
panel.className = "panel"; panel.dataset.cat = cat; panel.dataset.open = "false";
panel.id = "category-panel-" + cat;
panel.setAttribute("aria-labelledby", btn.id);
btn.setAttribute("aria-controls", panel.id);
items.forEach((s) => panel.appendChild(_makeTab(s, false)));
btn.addEventListener("click", () => {
_clearSearch();
openCategory(cat, panel.dataset.open !== "true");
});
catRow.appendChild(btn);
catPanels.appendChild(panel);
_panels[cat] = panel; _catBtns[cat] = btn;
});
// Indexed surface finder: every surface stays reachable without a permanent wall of pills.
// Matching is deterministic over id, title and category; nothing is generated.
if (searchInput && searchPanel) {
const renderSearch = () => {
const q = searchInput.value.trim().toLowerCase();
searchPanel.textContent = "";
if (!q) { _clearSearch(); return; }
_setBrowser(false);
openCategory("", false);
const matches = SURFACES.filter((s) =>
(s.id + " " + s.title + " " + catOf(s)).toLowerCase().includes(q));
matches.slice(0, searchLimit).forEach((s) => searchPanel.appendChild(_makeTab(s, false)));
if (matches.length > searchLimit) {
const more = document.createElement("button");
more.type = "button";
more.className = "navmode";
more.textContent = `Show ${Math.min(36, matches.length - searchLimit)} more`;
more.setAttribute("aria-label", `Show more results; ${matches.length - searchLimit} remain`);
more.addEventListener("click", () => { searchLimit += 36; renderSearch(); });
searchPanel.appendChild(more);
}
searchPanel.dataset.open = "true";
if (searchCount) searchCount.textContent =
`${Math.min(searchLimit, matches.length)} of ${matches.length} match${matches.length === 1 ? "" : "es"}`;
};
searchInput.addEventListener("input", () => { searchLimit = 36; renderSearch(); });
searchInput.addEventListener("keydown", (ev) => {
if (ev.key === "Escape") { _clearSearch(); _setBrowser(false); searchInput.blur(); }
if (ev.key === "Enter") {
const first = searchPanel.querySelector("[data-id]");
if (first) first.click();
}
if (ev.key === "ArrowDown" || ev.key === "ArrowUp") {
const results = Array.from(searchPanel.querySelectorAll("[data-id]"));
if (results.length) {
ev.preventDefault();
results[ev.key === "ArrowUp" ? results.length - 1 : 0].focus();
}
}
});
document.addEventListener("keydown", (ev) => {
if ((ev.ctrlKey || ev.metaKey) && ev.key.toLowerCase() === "k") {
ev.preventDefault(); searchInput.focus(); searchInput.select();
}
});
_clearSearch();
}
if (navMode) {
navMode.addEventListener("click", () => {
_clearSearch();
_setBrowser(tabsEl.dataset.browse !== "true");
});
}
// Mark every tab button carrying `id` as selected (a flagship is in both the Featured row
// and its category panel), auto-open the active surface's category, and proof-teal-flag the
// owning dropdown button so the current location is always legible.
function _highlight(id) {
const def = SURFACES.find((s) => s.id === id);
const cat = def ? catOf(def) : null;
if (activeSurface) {
activeSurface.textContent = def ? _shortLabel(def) : id;
activeSurface.title = def ? def.title : id;
}
_updateEvidenceRail(def);
const matches = Array.from(tabsEl.querySelectorAll("[data-id]"))
.filter((t) => t.dataset.id === id);
tabsEl.querySelectorAll("[data-id]").forEach((t) => {
t.dataset.active = String(t.dataset.id === id);
t.removeAttribute("aria-current");
});
if (matches.length) matches[0].setAttribute("aria-current", "page");
Object.keys(_catBtns).forEach((c) =>
_catBtns[c].setAttribute("data-hasactive", String(c === cat)));
}
// WebGPU toggle: flip the preference and re-boot the renderer + re-mount the active surface.
// Honest: if the browser/driver yields no WebGPU device the toolkit falls back to WebGL2 and
// the badge reports the real backend ("WebGPU: requested" but renderer stays WEBGL2).
{
const gpuBtn = document.getElementById("gpu-toggle");
if (gpuBtn) {
gpuBtn.addEventListener("click", async () => {
wantWebGPU = !wantWebGPU;
gpuBtn.disabled = true;
const prev = gpuBtn.textContent; gpuBtn.textContent = "\u26a1 switching\u2026";
try { await rebootStage(); } catch (_) { document.getElementById("backend").textContent = "renderer: UNAVAILABLE"; }
finally { gpuBtn.disabled = false; _syncGpuToggle(); }
});
_syncGpuToggle();
}
}
// expose a tiny API for the selftest harness to drive the shell headlessly.
window.__SZL3D_SHELL__ = {
surfaces: SURFACES,
select: selectSurface,
get stage() { return stage; },
get current() { return current; },
get wantWebGPU() { return wantWebGPU; },
ensureStage, rebootStage,
};
// initial surface from hash or default to the Atlas front door (Wave 27 unifier)
const initial = (location.hash || "").replace("#", "");
selectSurface(SURFACES.some((s) => s.id === initial) ? initial : "atlas", "replace");
window.addEventListener("hashchange", () => {
const requested = (location.hash || "").replace("#", "");
if (!SURFACES.some((s) => s.id === requested)) return;
if (current && current.def && current.def.id === requested) return;
selectSurface(requested, "none");
});
// ---- Landing / intro overlay (Dev4, Wave R) --------------------------------
// A coherent honest entry: the estate boots live underneath while this panel shows the
// Brain headline + frontier surface count + the public verifier. Every stat is fetched
// same-origin (0 CDN) and degrades to an honest NO-LIVE-DATA chip if the endpoint 404s or
// is unreachable — never a fabricated number. Auto-shows once per tab session; re-openable
// via the header ◇ intro badge or ?intro=1.
{
const introEl = document.getElementById("intro");
const setLabel = (id, state, text) => {
const el = document.getElementById(id);
if (el) { el.dataset.state = state; el.textContent = text; }
};
const setStat = (id, value, subHtml) => {
const el = document.getElementById(id);
if (!el) return;
el.textContent = value;
if (subHtml !== undefined) { const s = document.createElement("small"); s.innerHTML = subHtml; el.appendChild(s); }
};
// Brain headline — honest distinct_artifacts (never the raw, person-inflated total).
async function loadBrain() {
try {
const r = await fetch("/api/a11oy/v1/brain/graph?summary=1", { headers: { accept: "application/json" } });
if (!r.ok) throw new Error("HTTP " + r.status);
const j = await r.json();
const s = j.summary || j;
const distinct = s.distinct_artifacts ?? j.distinct_artifacts;
const total = s.node_count ?? j.node_count;
if (distinct == null) throw new Error("no distinct_artifacts field");
setStat("brain-stat", Number(distinct).toLocaleString(), "distinct artifacts (harvested)");
setLabel("brain-lbl", "live", "LIVE");
if (total != null) {
const note = document.getElementById("brain-note");
if (note) note.textContent =
`${Number(distinct).toLocaleString()} distinct artifacts; raw node_count ${Number(total).toLocaleString()} ` +
`is larger (dominated by arXiv co-author person nodes — never presented as distinct work).`;
}
} catch (e) {
setStat("brain-stat", "—", "distinct artifacts (harvested)");
setLabel("brain-lbl", "degraded", "NO-LIVE-DATA");
}
}
// Frontier estate — count of live 3D surfaces (prefer the honest server info, fall back to
// the in-page manifest which is the same source of truth as the shell).
async function loadEstate() {
try {
const r = await fetch("/api/a11oy/v1/holographic/info", { headers: { accept: "application/json" } });
if (!r.ok) throw new Error("HTTP " + r.status);
const j = await r.json();
const n = Array.isArray(j.surfaces) ? j.surfaces.length : SURFACES.length;
setStat("estate-stat", String(n), "3D surfaces, each wired to a live backend");
setLabel("estate-lbl", "live", "LIVE");
} catch (e) {
// The shell manifest is authoritative and always present — honest count, labelled as
// in-page (not a fresh server read).
setStat("estate-stat", String(SURFACES.length), "3D surfaces (from in-page manifest)");
setLabel("estate-lbl", "degraded", "MANIFEST");
}
}
let introReturnFocus = null;
const introBackground = [document.querySelector("header"), tabsEl, document.querySelector("footer")]
.filter(Boolean);
function introFocusable() {
return Array.from(introEl.querySelectorAll(
'button:not([disabled]),a[href],input:not([disabled]),[tabindex]:not([tabindex="-1"])'));
}
function openIntro() {
introReturnFocus = document.activeElement;
_clearSearch();
_setBrowser(false);
introBackground.forEach((el) => { el.inert = true; });
introEl.hidden = false;
loadBrain(); loadEstate();
requestAnimationFrame(() => (document.getElementById("intro-enter") || introEl).focus());
}
function closeIntro() {
introEl.hidden = true;
introBackground.forEach((el) => { el.inert = false; });
try { sessionStorage.setItem("szl3d_intro_seen", "1"); } catch (_) {}
if (introReturnFocus && introReturnFocus.focus) introReturnFocus.focus();
}
introEl.addEventListener("keydown", (ev) => {
if (ev.key === "Escape") { ev.preventDefault(); closeIntro(); return; }
if (ev.key !== "Tab") return;
const focusable = introFocusable();
if (!focusable.length) { ev.preventDefault(); introEl.focus(); return; }
const first = focusable[0], last = focusable[focusable.length - 1];
if (ev.shiftKey && document.activeElement === first) { ev.preventDefault(); last.focus(); }
else if (!ev.shiftKey && document.activeElement === last) { ev.preventDefault(); first.focus(); }
});
introEl.querySelectorAll("[data-go]").forEach((b) =>
b.addEventListener("click", () => { closeIntro(); selectSurface(b.dataset.go, "push"); }));
const enterBtn = document.getElementById("intro-enter");
if (enterBtn) enterBtn.addEventListener("click", closeIntro);
const reopen = document.getElementById("intro-reopen");
if (reopen) reopen.addEventListener("click", openIntro);
// Auto-show on a fresh visit: skip if this tab already dismissed it, unless a deep-link
// hash (#brain etc.) or a suppress flag says otherwise; ?intro=1 always forces it.
let seen = false;
try { seen = sessionStorage.getItem("szl3d_intro_seen") === "1"; } catch (_) {}
const force = /[?&]intro=1\b/.test(location.search);
const deepLink = SURFACES.some((s) => s.id === initial);
if (force || (!seen && !deepLink)) openIntro();
else introEl.hidden = true;
window.__SZL3D_SHELL__.openIntro = openIntro;
window.__SZL3D_SHELL__.closeIntro = closeIntro;
}
</script>
</body>
</html>
|