From c9f969f910d391449b0b575ae74ef2273bdd9dff Mon Sep 17 00:00:00 2001 From: Dmitrii Vasilev Date: Sun, 6 Sep 2026 19:50:46 +0700 Subject: [PATCH] feat(queen): make the hive a truthful display --- .../models/LICENSE-kenney-hexagon-kit.txt | 18 - apps/website/public/queen/models/README.txt | 7 + .../public/queen/models/Textures/colormap.png | Bin 10831 -> 0 bytes .../queen/models/hex-building-archery.glb | Bin 58632 -> 0 bytes .../queen/models/hex-building-cabin.glb | Bin 43816 -> 0 bytes .../queen/models/hex-building-castle.glb | Bin 88592 -> 0 bytes .../public/queen/models/hex-building-farm.glb | Bin 18928 -> 0 bytes .../queen/models/hex-building-house.glb | Bin 35452 -> 0 bytes .../queen/models/hex-building-market.glb | Bin 52276 -> 0 bytes .../public/queen/models/hex-building-mill.glb | Bin 48284 -> 0 bytes .../public/queen/models/hex-building-mine.glb | Bin 32812 -> 0 bytes .../queen/models/hex-building-smelter.glb | Bin 42872 -> 0 bytes .../queen/models/hex-building-tower.glb | Bin 50916 -> 0 bytes .../queen/models/hex-building-village.glb | Bin 40412 -> 0 bytes .../public/queen/models/hex-building-wall.glb | Bin 64584 -> 0 bytes .../queen/models/hex-building-walls.glb | Bin 108708 -> 0 bytes .../models/hex-building-wizard-tower.glb | Bin 88908 -> 0 bytes apps/website/public/queen/models/hex-dirt.glb | Bin 3464 -> 0 bytes .../public/queen/models/hex-grass-forest.glb | Bin 45748 -> 0 bytes .../public/queen/models/hex-grass-hill.glb | Bin 34204 -> 0 bytes .../website/public/queen/models/hex-grass.glb | Bin 4680 -> 0 bytes .../queen/models/hex-stone-mountain.glb | Bin 20904 -> 0 bytes .../public/queen/models/hex-stone-rocks.glb | Bin 24700 -> 0 bytes .../website/public/queen/models/hex-stone.glb | Bin 4656 -> 0 bytes .../public/queen/models/hex-unit-house.glb | Bin 8804 -> 0 bytes .../public/queen/models/hex-unit-tower.glb | Bin 21276 -> 0 bytes .../public/queen/models/hex-unit-tree.glb | Bin 6800 -> 0 bytes apps/website/qa/queen-honesty-contract.mjs | 14 +- apps/website/scripts/queen-kie-assets.mjs | 100 +++ .../src/components/QueenCombBabylon.tsx | 684 +++++++++--------- apps/website/src/components/queenHud.ts | 45 ++ apps/website/src/pages/Queen.css | 37 + apps/website/src/pages/Queen.tsx | 51 ++ docs/QUEEN_HIVE_GAMEPLAY.md | 91 +++ 34 files changed, 689 insertions(+), 358 deletions(-) delete mode 100644 apps/website/public/queen/models/LICENSE-kenney-hexagon-kit.txt create mode 100644 apps/website/public/queen/models/README.txt delete mode 100644 apps/website/public/queen/models/Textures/colormap.png delete mode 100644 apps/website/public/queen/models/hex-building-archery.glb delete mode 100644 apps/website/public/queen/models/hex-building-cabin.glb delete mode 100644 apps/website/public/queen/models/hex-building-castle.glb delete mode 100644 apps/website/public/queen/models/hex-building-farm.glb delete mode 100644 apps/website/public/queen/models/hex-building-house.glb delete mode 100644 apps/website/public/queen/models/hex-building-market.glb delete mode 100644 apps/website/public/queen/models/hex-building-mill.glb delete mode 100644 apps/website/public/queen/models/hex-building-mine.glb delete mode 100644 apps/website/public/queen/models/hex-building-smelter.glb delete mode 100644 apps/website/public/queen/models/hex-building-tower.glb delete mode 100644 apps/website/public/queen/models/hex-building-village.glb delete mode 100644 apps/website/public/queen/models/hex-building-wall.glb delete mode 100644 apps/website/public/queen/models/hex-building-walls.glb delete mode 100644 apps/website/public/queen/models/hex-building-wizard-tower.glb delete mode 100644 apps/website/public/queen/models/hex-dirt.glb delete mode 100644 apps/website/public/queen/models/hex-grass-forest.glb delete mode 100644 apps/website/public/queen/models/hex-grass-hill.glb delete mode 100644 apps/website/public/queen/models/hex-grass.glb delete mode 100644 apps/website/public/queen/models/hex-stone-mountain.glb delete mode 100644 apps/website/public/queen/models/hex-stone-rocks.glb delete mode 100644 apps/website/public/queen/models/hex-stone.glb delete mode 100644 apps/website/public/queen/models/hex-unit-house.glb delete mode 100644 apps/website/public/queen/models/hex-unit-tower.glb delete mode 100644 apps/website/public/queen/models/hex-unit-tree.glb create mode 100644 apps/website/scripts/queen-kie-assets.mjs create mode 100644 docs/QUEEN_HIVE_GAMEPLAY.md diff --git a/apps/website/public/queen/models/LICENSE-kenney-hexagon-kit.txt b/apps/website/public/queen/models/LICENSE-kenney-hexagon-kit.txt deleted file mode 100644 index 606821ae8f..0000000000 --- a/apps/website/public/queen/models/LICENSE-kenney-hexagon-kit.txt +++ /dev/null @@ -1,18 +0,0 @@ -Kenney Hexagon Kit — CC0 1.0 Universal (public domain) -https://kenney.nl/assets/hexagon-kit - -The Queen game field draws from this kit alone. Models shipped here: - - terrain hex-grass, hex-grass-forest, hex-grass-hill, hex-dirt, - hex-stone, hex-stone-rocks, hex-stone-mountain - settlements hex-building-cabin, hex-building-mill, hex-building-archery, - hex-building-house, hex-building-village, hex-building-market, - hex-building-farm, hex-building-mine, hex-building-smelter - castle hex-building-wall, hex-building-walls, hex-building-tower, - hex-building-wizard-tower, hex-building-castle - units hex-unit-tower, hex-unit-house, hex-unit-tree - -Every model references Textures/colormap.png, which ships beside them. - -The Kenney Space Kit was removed on 2026-09-06: two art kits in one scene -read as two games, and half of its models carried no fact from GitHub. diff --git a/apps/website/public/queen/models/README.txt b/apps/website/public/queen/models/README.txt new file mode 100644 index 0000000000..fc7cd37102 --- /dev/null +++ b/apps/website/public/queen/models/README.txt @@ -0,0 +1,7 @@ +The field draws no 3D models. + +On 2026-09-06 the operator asked for the 3D objects to go: "убери 3D объекты +а то шума много", "замки не красиво смотрятся, а соты мёд пчёлы классно +читается". Every fact is now a cell - its rim, its cap, its colour - so the +Kenney Hexagon Kit (24 GLB, CC0) was removed along with the Space Kit before +it. Nothing here is loaded at runtime. diff --git a/apps/website/public/queen/models/Textures/colormap.png b/apps/website/public/queen/models/Textures/colormap.png deleted file mode 100644 index d92d4bf772f1f72bacd6ce59e237f468f12186c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10831 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 RlmWTzGB!7QvV(K({{U+wiRAzQ diff --git a/apps/website/public/queen/models/hex-building-archery.glb b/apps/website/public/queen/models/hex-building-archery.glb deleted file mode 100644 index 1495cde75ec75660aefa3df16fb30194494833f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58632 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 vh<#ZHY}oL_M2xo-Q#ALXP> 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 D;Oa-i diff --git a/apps/website/public/queen/models/hex-building-cabin.glb b/apps/website/public/queen/models/hex-building-cabin.glb deleted file mode 100644 index 76b37b5af4d71d43571ce637dd690514a99ca31c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43816 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

dmEqllO$@$#dg+j?Z)8v3Nclhu6+);q`JG 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 diff --git a/apps/website/public/queen/models/hex-building-market.glb b/apps/website/public/queen/models/hex-building-market.glb deleted file mode 100644 index 62e1d770802081f34d38b742c229714264b60cd5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52276 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 diff --git a/apps/website/public/queen/models/hex-building-mill.glb b/apps/website/public/queen/models/hex-building-mill.glb deleted file mode 100644 index 2ca71d4c18dde4849e20927132ab6e56ce56f92e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48284 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

Az-TAA5P;DqF_NT$0Z{r~lF#{?+Tbwv3hj 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 diff --git a/apps/website/public/queen/models/hex-building-mine.glb b/apps/website/public/queen/models/hex-building-mine.glb deleted file mode 100644 index 6d04846d655b11137aa0ef956d84d9c90698ceb4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32812 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 diff --git a/apps/website/public/queen/models/hex-building-smelter.glb b/apps/website/public/queen/models/hex-building-smelter.glb deleted file mode 100644 index 962ea9471f4399ddaaebfb08d7de7988236e63ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42872 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 Kq*}yH5&sY8ZL$~u diff --git a/apps/website/public/queen/models/hex-building-tower.glb b/apps/website/public/queen/models/hex-building-tower.glb deleted file mode 100644 index 1a76e832be036943969d2c721cb6b39f2b6629d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50916 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 N^@{Z}jBG2%`adR3Sgim6 diff --git a/apps/website/public/queen/models/hex-building-village.glb b/apps/website/public/queen/models/hex-building-village.glb deleted file mode 100644 index 6e843a4f5ab729fe7222077dea4a2513d62203e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40412 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 ZG>6UC<}0AX=3nMJ^R4*?=sWYh`5)ry+N%Hn diff --git a/apps/website/public/queen/models/hex-building-wall.glb b/apps/website/public/queen/models/hex-building-wall.glb deleted file mode 100644 index 6973aa30432c744f773c720fdbbf72666090734c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64584 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Á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 zÁ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 diff --git a/apps/website/public/queen/models/hex-dirt.glb b/apps/website/public/queen/models/hex-dirt.glb deleted file mode 100644 index 40fa4bc6e3cfa9baa1c9a775122f727f8344ce74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3464 zcmeHI-*4Mg6n5LO4Ytxj2ODhA_40c64+JO0o%Qs*01`q?QspvYoLi ziqr=lc;|(`fmhzUe_(s(h5v*HzH@!;x^6cm+a8JH_}t@jzVH0>%JFt4vs*yWF=!&u10(&~?JYd%LY|mSa!2A2^;1t)5reG{^YUkh`P` z9tOP2Dv#L@-#7L{sK-9v4}IGWdY(UIdpQ<#0Lm(=lmZw}nCo>pNh%Cndx+<(>-Zs? z;%s+1JP15LvTTogJ?=kp_%8yZ;|)ii%iXYbID(g{>BSuDcw-mw7a)d0%^q!43y6DY zKP8g9nN#zc8htdQtZG_O)1fmQi9SUNC` zVwgWLEwAS2Qu9`^h%gMJWErMmmQTW<$9KigS)*(e`aDq>NqM3OqDUa0=2l~VdXgn9 z%tNRrglfL57Io^0RWcL0)7mVRaUPW@yJ&q8<0V_)tZwdZHWIRenMw)S?9qrty^{lW z81h~2_QL~K(Mpze@|=b)J%nNa+bMISfRdA<8Tw8a2Lq?m@W%ZE7aM~X zSlbSGmB1u4=^VGqu?CRf$<`wM`5Oxlu*RyM=VPs@)9Dl&K{9RI9kCiQMbLJ=aeKg< z=sOHUf6QMJHxCYE(j(s)I-&DK9_n*4nJy z+p4u#1*6s4`l(v4H@@3fF+DjE7w!bv1ekPGBWn`a!_feX zUMy&|YTFs0c+3jD}PG)8SZq&_OW~nRf3cDCH;%%&%Y*o(ns?89+qgN$3B{Gkm}ke?$&%`FsHWpK<+vKd%mp3(CUc($eCEr3>#| zzI5@@<#(@MdGE^AJD(_6PcyR-KB+MV^ab;j1e F_zxfiaSi|g diff --git a/apps/website/public/queen/models/hex-grass-forest.glb b/apps/website/public/queen/models/hex-grass-forest.glb deleted file mode 100644 index 66d726f174e3b58043ca1d939a4b5a6d9b83e29b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45748 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 Xov$s8_P!3j&c05*jx;*^9`gM^i;1Ub diff --git a/apps/website/public/queen/models/hex-grass-hill.glb b/apps/website/public/queen/models/hex-grass-hill.glb deleted file mode 100644 index 1ac899a6c46f59231abcef99497769b08f59eb20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34204 zcmd^ocYGDq^Y%F_(o~v&h=>q61PJK~_wLf0G((l1KuCfqkOYtt2q;CQD!q3RloG0t zyNiG{DT;uAfQX2qQUnC0`OeJU4U^UTOQPiS{o`dlyJzM+^UO16_ntku6r*C>H&KKT z^T!BrDz6YN+O=st%qu)8DKgnBbeLCEWPD^|cydCbSEyHq_?YA&OhA58 z)Eh{>LVe6$5`c$!#V7QM#GVfT;=|)$+$$;(WYmm~iH-G20dIKk-jPX335jle#K69N zBNIEuL=GmV-U)I26XGM|liLsJ53vDtd;`6`dM6BwhbjX7e7(Jr$?w&%aYH|l9~b^6 z=BgFo?Nck*$IsV4D8x57uuh0yuzyex_yU50`~rM@1A>EngM58L{DUBWTnv=kwWd4B z#~V9;L#22R^Ww_tpoo8=tWGT-Z)`rbLV^PP`~v&}LIQ&P`~v-b10O3vKutRR6U;6J z<{$@B{4*xWEhEscP5{hJpkIJ*U`U<708$4-HZ?xA{stt4h_nmx%aI`83_(z=PoOW} zxe$NBmO zKOoGja%5smc&z*8^p8kv6`33!8ynL* zEMZ_&bUZ9VxH3kBCq*_yGLss8G4XvOVPSzHA1{aK|L3I;24H<`n2?YN>!nXhN(!to zW~L_Ly=l#bM+&@s5(Y-ZMz(`T0D#Gf10y}?j!cR+i|(Ho6Bm;lGsrZ
  1. l17?_Oa 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 O%0ML<+8|}H^8Ww@JVUtv diff --git a/apps/website/public/queen/models/hex-grass.glb b/apps/website/public/queen/models/hex-grass.glb deleted file mode 100644 index 6e8f1cc7d9e1151f002150e0b46a264aec387cc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4680 zcmd^DQE%H+6n5Lu4Layp2OVs%al3A;q?uzou^mLCQrfLsm!Kw_kfy3Qshe6#?8tV; zswh(4c;OB4&NEMwcyAwgZQu7J_zj42?)7yXXRDkRc)^l$&pkfpJKs6?_*hE4QCS-o z1mVGDLHKD>5FVCG#SSq%&-6*YL+Yk&x`yw#Bu}2$mcM_0qq0U)i0$l{D2ZTT z8%=ml>MqbAT~HXcn(29t%S@~7-CfgtYMDP!kebtMIksv0mHigDWiwJPMQTplh6HjD z#HVWVbah1r;!WcPMoDK=Vp)4Sc*ve};|XETmCbC}DXR1I7g8 z!Pp{?k5A$O6T96mjEW%Ano*-e6WR#0J5IaWFw1c8VCcJT^9{UBZ!bu?E-SuWmREmoj8L0fM+aR<`zpx2=sLpGk#Y&GB`K!-OR)|%CTqLaL?N*bM* zp+eUbj1qhbm_y)Ap*^SV*4X!8_%OS_P6@)->qYoN2?hMgAOE}*kq>_PV|szw znf@)14`Icd+jIEX|%*$$bwnR$znJ+!yh~SaCi9e%v>-M_+Ce z!NGjFp5`903Hg8x=Rj>>Pjipu$YTxU7{lkWXfDS`8%t1=KxXw}_EaD6Ve;XhlTbI5 zXOI{0VZK{`%|flH9^(T(vyaFJ%op*gFXyln!;Ja@KI0Sf1wF%$`Z5j_A31Q}gBUmN zi}}W68Y`*~a%UV^F3ctt>+lVA=m|oPo(K4zMaEhSuYTXcbrcz6bNiEIe1`bACXmCN zz&w#$Kzw%f638J3wB>wGkP~sBIGhCVMm)TFXOI(c8{ki4{(I*b=7eeS{7#TVZkPwp zJleHa$S2Vr3k^41SQlEG9^H<<2i^nziT06t zalWt$QT`|H!L*0=r{_QL9wLWBh8JRzA}2GGIwi!ZvOV|`8x}DKfk;1MS3x{n7$`v#Ec~8;E#!%n%6Zw|K;C`_r8|^ diff --git a/apps/website/public/queen/models/hex-stone-mountain.glb b/apps/website/public/queen/models/hex-stone-mountain.glb deleted file mode 100644 index 121632ba35e0f351c66270423f0c5f7c1b0971b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20904 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 diff --git a/apps/website/public/queen/models/hex-stone-rocks.glb b/apps/website/public/queen/models/hex-stone-rocks.glb deleted file mode 100644 index 8ab862ae8431c4d9f753bcf41d85dd850f4f6228..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24700 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 diff --git a/apps/website/public/queen/models/hex-stone.glb b/apps/website/public/queen/models/hex-stone.glb deleted file mode 100644 index 2c199c76ffdc5c0643bf2619f43089b34ee8792a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 zcmd^DPjlN;5LW^Xq-jZM3MsVE@>*y}6<3yJTQWmDAtWV`+KlaXm?@bcJ1>rAY{?_Z zr5TTBeBc}8!jW^Y+!H=Pa_7P~;4?7nKIzFXO4`b4Z}p7p-PQj2?Qd6`nKoOs)p1FZ zl*^LjPe{`D)pDsvOwXe}DfCE_+SE0D$0Y^w(6;>D`|Gt;B9kZ7^(@B*tC~_sUncaa zPi-`L4?Vg?3XjPT-&Hn!Fn3+L>AR-wZ98t8Y{x02;G^pn}Zs1z)Zf{ffkwt%HNg7VO1CF*|+wDMDHm&Al(r~&qG?0TLJ~NX? zE6W)G-Zr0Nl~h(%QmPVsR6|$PjH+s2%jWZ$tfFRhUCpbCq2-}`+k!?PF9bn~jKT@8 zzT6`sury*A9auW0$oN%KdM*brG%c@dSuJY}Vc_Eh_RmSDI0|(X6k0@2fFM8u^6}aV zua8gS1v8@*RHK4Q%20AD&P2~=qjE|rmmON;rL@yZG1}Sa4cLNk^ws61^`%NwENciY zK{p$?V!`af1>5!MI<=er4k@TcJ~w=hOD8TNTfn;D4m$(6z)ss*A*Mf`T-D@~4xEE$8)v=o}y6`4&D?1Bq)2FUwwt|Ut>h1&To2{1B zs5sr`jtwURPgvdb=rSe?Q=`qYwvC%Z}s1VN?43KAeQG(yG~D z#}U>DtXodE-lA0)JUIGpmp%tK^>)IhJFeBXeCtW5nm(*ez3ZdeBR`g_YqhmP%yQ#o_0R-sGf@4Vv@Op555HxUo;;izU+k`23~R;?D0P6|d|)!Ai?42G^@mGI;T0bw*t?Kxey5#0Tg!|eYt zB}w0`mEbRtR6IIdUo0H$?FaJV*F%}v7X|w<`LBN`=8q21f2JtpSq$tLo5;TZ^MA9? z0t_<;kmn%8gSEJf*g%f3on{yPLktl%9vjET^MtWM{s0e)74aOy8S^P}Y_VRz9&r2n zKhyKjgA{Utc|qP=M7zLYgcBYkr;$$}b3Pf)cx;40h(+GG9ea#&K1bdcasGC3`Wg5k zX2wGx?=h}Ic|YdE^D}$c7shf7hzE7-D;~>xkH<#-7|VGU@-RH19pnMSfHjiI0VjX| zxq)#k_9gN_$omTNfb|76;gduTcnh(y*n~3ra{m{}MMMHQ(I<(Fe&~H?>T z0r(KHy$(I<4|BtJG+pS2#h*bxKt6#V9)DIH;uya?KB-=e)jzAw>+$$Ry1+N{A6;iN z!xrGf_JP%ZT{_GYaIyLDe$J``u4D5_q+?T9U+8VX)M2kL(dVGfFYtX+es{ut-;Ce! zF==f4t%-AQpPP8+{N%fn=cgv8E?k(pcxn2*=}YflnYlc3<%6rUAI@I===!yfuU-G- z=8aEp-2CkJEpqGj=W}qe0Tn?ys#jr7E<@rw31dcIrtBVT)trFM&Yaf0o9R^ A0RR91 diff --git a/apps/website/public/queen/models/hex-unit-house.glb b/apps/website/public/queen/models/hex-unit-house.glb deleted file mode 100644 index 057d4a785cb965f01b6c6986b19bdcb6c6b17b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8804 zcmdT~-E$k&6<<m&}cv#ZrNNX963aB%FzR-Aw_&RSl}0)3d>RpKBF zqT#CrW|;OVMQ_Ms6GyPlVPy)Eo615tr%3QdL8gD_k zI-r26n9!uCSSKEg2LNs8LP|gVnDrNifpk$gjlPYWqAM-Al*2BTf*2}fcu#-{#M4SpFr z?I#jbfz9Kcb7AAqaJc!Ro)a%dRj!zMcrG%|TVtKbmJ9IG=*t7kr5v1~`(!C(D)GQVHG}eEjBh%SdA~H#K7U(t-hR2ejCD@etqowSx_K z0@LNP2~VQ3y1EKi$gMP@XT`G$mkH2?a%H|?Ou^{`(Kai_Ho6UK$!&Vs%op=^{<7=p zHr$>0ij8hnK07frni-uK7edD;CeI9w!L16&nW6Dh!{Zq_0SB5HzL=hvm^?YBz$F6- z&{-Z{SUCZgk>-PI?Yr_d}qeXtJTrsoGcSq~7u724gNiU6#OJ7|-Sck7P>E`BU67BB~f0QH} zallf9lkMVlh6@{Uh+QL`Y{pM9Thu}>=Eb^O*^Eyd)I)jvw&(@-Sx&U6marjb>gMK{ z(CONuHr8S|+K6vetByI5kNeE_a6UsfkKi}w7qjAhah;%1oQcTKZAa(Ub7uLy9>2PN zoq9kGh>LznBkE`Kuk%{`KDZpOUy671I5}A!>PyUoxHzxvY#z%rQy#2Kv8n%@i>0LR zim5g2pGmYY{rhZc&Hf$Qb%xg&&N-0ldg}O-&wY!0#sRGj+|9FwoHu{_7e8O%oX_(x z4OAETq*=ted|~ri%x>Z{4JmH3TD*78;re;bCT%x=kF)X#h5`Z=HBe9o!=PGwVH z-}tMT1LM>gPG=!z@~=PKNUHY+#91?&IDS1`8`VM%=Tj{ad*Iqe^6MKXF@K%eO|h;v zk;moKaSqI;oNI`)UN|S^>KCz`!{)#_bP6Jz9Il7q)R(C1<`KQS9PFJm3!Kk^ z+l)^+F_v@+o8_mOV9q8E%Sm}q8}YF(;tQO5m!#S{zBA5eFKnsCa(7_Y1|2^B?8Nr+ zV_XfR+_;)BogB>WwnxnA#q5!dN=2`bA3r&QbZ{YU01bC!o_PPM-!^vldZ6zve!sT6 z|F;YG-V-u1o{&u#MC z)!*}d=z~5u+ivIU&1c;=pWEbjtLL`!p%40q`P^xLkg7ZL?Yh5R>fP=6cCFXn@Bg`e zZ+_61m_^MwPjQ#9*FE+(lA87y)Y(WLxb}=#Z`Jq5Q9fGz`{esq;?sI_Gaz))>gVsy zUl}~Iei8CF)<6GgM)7Q{+E#Zg|rPdMeFm2g@q&cD(=)g|BI zZ6v?>b_w)sz~B3$u2!G$cmDWB6OVj~cXT!K&_2ZzubodkS}8BBgwskmt%Oq@!by*R zpLn$I_bGm0W?J;`_lZv{@%*blj{LvgpN;s{A(@Hq4gj0ROsXpPf5>6}O{ygOS zd6b{_Y27Xl#Z#Q0NAdoBjN5mYbl1Kg?Z4;ld-nhM{`>B|@BRlKe(1r69)9G&qd$4{ zz++E5{?o^w_}QU@PaZtf({t#lo~NGfdHQhA;h)RTKJ%>nizB_i>^*YySntteNBfTV z9_u~++_AnupszpBKhWQI;zXaK1=XMyiblebXe<_uzwmtG`4^He4yFcQ96FhPDSdJ{ zJv@>gIdyvU<jm z?0j~?SjsKtmhy$S-h8Wo|6!rL{I+eGmR(u7a{0>2)px7!RNq~#z5m|(wGTeL_N!|j We)Q=lAAj=cuRs6nH=lj}#s2_A`!4kW diff --git a/apps/website/public/queen/models/hex-unit-tower.glb b/apps/website/public/queen/models/hex-unit-tower.glb deleted file mode 100644 index 228b582bbfd9373d2eba2601a9d1a46401b28ae2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21276 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 S0U0x7Hku7)Jz%5RWc~-xkCL4L diff --git a/apps/website/public/queen/models/hex-unit-tree.glb b/apps/website/public/queen/models/hex-unit-tree.glb deleted file mode 100644 index ff8ec31218c17cc2bb4e9d000dd37eb983596b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6800 zcmcgvU2Ggz72X8u&_F}m(EQP+$(a7H-QC&WG2Yp_PMq4cz5dylwu$SG*JEeJ{+QX> zl3-af5~@@vP$76I0*N-L6+A#yBtXbJgCaHb!Ic0BA&?@`7pjVi2O@ape0T3%AMbkW zjS*QTntQ+Vo$q|--aB{Xr9yUSZy*qO`B)%uWM3dKGMyP;(X2|vcD240ZOJa#j^&me ztxr2!%Db1&jAnl( zR;jXBc8c0;P^;ufRO<`LQH97WTB*EXV-zAn$tqG@t5Url*RgGFl|U<(vn!RdQ>V{Y z7Z+`3CU1XP2<6Jf<#Nd`x!Ft0lo|``@t~F~S4-4HI7F3Pfon6T2P5RZXkA39UJ8j{ zIBJB#;dodNhI%6jL;PZTBplb1QD7}R@>9%H_vd=H2~t8RxLsg&HMpX2=V6%Km2)Gh zClk6JO~j3uq3g*Q6-^{!kx)EAZN#I=P?(Sw7Wdr}4EBWU##fb1rN!0G>{J?W&CDLjJOyq1w0vZOaG(T+zW39O%?$8Z|LVM7lYy3sI0 z+iBDpF+Ga2K}#Gvm6&Jru#R^C$h7O^7w8S4qprD@vxK)i5;fxb=5jW& zGmDGj7TC;I1|F4$X^N9+o#9>Ln?i`J63l2){; zlc)PATffXIkLJn+y2`BO-sRE~?Vr4^6e@13qUG97-YV3$WqIBivt6rD$mgcY)ujt1 zy2)_6&RZ3G5MojqSiZDi)9pkZZeFRtx4%v)KzHn5x$MxL8(LjmrHe^c8nSZY-lnre z=t8+VU$CcX^NHv>RlALEyK+G`z3k+Rc{l&OoLVj&o%yPZ>54XynI6s#XU2um@yyiN zz$hK6pq3pNKXZCKtM$?O%AS5|Fq4@&H5Z~YMi!{EJl)}RdT|5S*9WF)t+&1L)hA(v zTB^{YrzP2zSFwuA1^OO|?+9($P`*IoTAz`in+5lD12B?NRFhw&dVulW5>T-UKX>$HL=W`Cj;i=*0@WpS|;O*Uwjnwa6jMhG!Oq$<+<&_lSDTb#MPCUU! z9`OVpc??f6oa@wxr*vwpE^t*BI-)M(Yz$423oaW&zu}*IV4BT-6u-G{yS|hk-V67G zbyIzD4)?#McjljSQmkLBkEjcbje#rwz||N!Vhk=D3!L`ee0O6M>$ZOW+gD7SV{jyn zUiyLm{!U}?z=3!tW2OmDO26%xG<~MO<9PHtS3UQ8KQgbpH=9np z_EYc3#t+OxXBN_gn+!J!BUwl1z?+o`C-qPbXYv?m?;+!bX)-_xc`$@f`T^ir) zIraxX+?k^GnwWMxZ``%efPd0azfR_j`l|P}dbY?V?4#p_|9mn1VD~=rkH7v6-N|d| z((ISg6K`Eh{mgn*%w^o8IPF0_KK9nN8pXvNIP$?m960i!gE@35?y-)04n9KUm_gOvo5p(GW_0$~o;ZMx>9A8M!J@S6-)!W|_dau!w<|*LN ztNtRN{`)&!-r+yJE#gP%`TjdyCUC@w=Yy~E3HOO_Dn99X&{ukt?@_*|@{uRw+)oO5 z(1#A{Ls$7hedw_I@Gs`F9{ejl{J_76%lhyy;?Pj1tv1z+Yu;pWf(>3m@RB`Z&QnlU8LRlGY~i-`0Cl5uWtb8U{CL(dN>r;Bk@=?7EdJN z$wbmHl6^+s=gn0Az+>rCgO8sXIz2M{#PG9A~ diff --git a/apps/website/qa/queen-honesty-contract.mjs b/apps/website/qa/queen-honesty-contract.mjs index d1e57a224a..f67bf74e27 100644 --- a/apps/website/qa/queen-honesty-contract.mjs +++ b/apps/website/qa/queen-honesty-contract.mjs @@ -3,7 +3,7 @@ // source facts a regex CAN state. Node 22 needs --experimental-strip-types // to import the TypeScript module; package.json passes it. import { readFileSync } from "node:fs"; -import { alertCount, alertSpan, beeSilence, buildingPlan, castlePlaces, epicProgress, familyTint, feedCoverage, ringFamily, ringOfEpic, ringSummary, towerStage, wallBetween, ringOfModulePath, epicOfIssue, hexRingCells, foundationCells, foundationOrder, hexCellCount, hexCentres, hexCorners, hexField, hexIndexAt, hexRing, hexRingStart, hexToWorld, honeyTone, layersFromSearch, spiralAxial, spiralIndex, spiralOrder, HEX_R, S_CELL, buildingTint, cellGeometry, countdownFor, eventIdentity, mergeActivity, serverOffsetMs, decisionDetail, fieldShape, moduleColumn, moduleFor, moduleId, pathInTitle, placeCards, rewriteEndpoints, ringOrder, ringTone, roundStrip, skipReasonWords, staleAge, territoryOf, planHash, withOpenIssues } from "../src/components/queenHud.ts"; +import { alertCount, alertSpan, beeSilence, buildingPlan, castlePlaces, epicProgress, familyTint, feedCoverage, ringFamily, ringOfEpic, ringSummary, towerStage, wallBetween, ringOfModulePath, epicOfIssue, hexRingCells, foundationCells, foundationOrder, hexCellCount, hexCentres, hexCorners, hexField, hexIndexAt, hexRing, hexRingStart, hexToWorld, honeyTone, layersFromSearch, spiralAxial, spiralIndex, spiralOrder, HEX_R, S_CELL, buildingTint, cellGeometry, countdownFor, eventIdentity, mergeActivity, serverOffsetMs, decisionDetail, fieldShape, moduleColumn, moduleFor, moduleId, pathInTitle, placeCards, rewriteEndpoints, ringOrder, ringTone, roundStrip, skipReasonWords, staleAge, territoryOf, planHash, withOpenIssues, HIVE_TONES, hiveCoverOf, hiveKey, hiveToneOf } from "../src/components/queenHud.ts"; const fails = []; let checks = 0; @@ -177,11 +177,23 @@ check(ringOfModulePath("rings/SR-00") === "SR-00" && ringOfModulePath("rings/RUS check(epicOfIssue(101, [ksEpic({ number: 9001, children: ksKids(3, 2) }), ksEpic({ number: 9002, children: [] })])?.number === 9001 && epicOfIssue(1, [ksEpic({ children: ksKids(3, 2) })]) === null, "epicOfIssue: the first epic listing the issue among its children, else null"); check(/data-working-age/.test(combSrc) && /kind === "finished" \|\| kind === "error"/.test(combSrc) && !/WORK_WINDOW_MS/.test(combSrc) && /const i = cellOfPath\(title\);/.test(combSrc), "work is a state, not an age: the cell is worked while the issue's LAST wire event is not terminal, and the age rides beside the count (measured 2026-09-06: the wire burst-delivers, newest row 18 min old while the swarm reported working)"); check(/if \(hover >= 0 && hover !== p && cells\[hover\]\) placeDashed/.test(combSrc), "every cell under the pointer lights up, not only the ones carrying a card"); +check(!/\.glb/.test(combSrc) && !/LoadAssetContainerAsync/.test(combSrc) && /data-look", "hive"/.test(combSrc) && /CreateLineSystem\("queen-mark"/.test(combSrc), "the hive draws no model at all: no .glb is named, no asset container is loaded, and the Queen at the centre is the mark itself (the user, 2026-09-06)"); const SPACE_KIT = ["platform_small", "machine_generatorLarge", "satelliteDish_large", "hangar_smallA", "hangar_roundA", "structure_closed", "gate_complex", "crater", "hangar_largeA", "rock_crystalsLargeA", "astronautA", "astronautB", "rover", "alien"]; check(SPACE_KIT.every((m) => !combSrc.includes(m)), `the field draws one kit: no space-kit model may be named (${SPACE_KIT.filter((m) => combSrc.includes(m)).join(", ") || "none"})`); check(/host\.setAttribute\("data-foundation-shape", "outline"\)/.test(combSrc) && /CreateLineSystem\("cells"/.test(combSrc) && !/CreateCylinder\("honey"/.test(combSrc) && !/hex-sand/.test(combSrc), "the cells are outlines: a line system per cell, no honey disc and no filled tile model (the user, 2026-09-06)"); check(/host\.setAttribute\("data-hover-issue"/.test(combSrc) && /queen27-hover-card/.test(combSrc), "a hovered cell names its GitHub issue on the host and in the card"); check(/host\.setAttribute\("data-castle-source", fdNow \? fdNow\.source : "none"\)/.test(combSrc) && /data-castle-stages/.test(combSrc) && /data-castle-unassigned/.test(combSrc), "the castle's testimony on the host comes from the snapshot's source, never a guess; stages and unassigned epics are named (K-2)"); +check(HIVE_TONES.t27 === "#FFD45A" && HIVE_TONES.awaiting === "#64DCFF" && HIVE_TONES.manual === "#FF4D5E" && HIVE_TONES.hover === "#FFC24D", "the hive's colour law is exact: yellow T27, neon blue awaiting, red manual, honey only for the hand"); +const claimed = new Set([hiveKey("Access Control")]); +check(hiveCoverOf("agent-server/apps/access-control", claimed) === "t27" && hiveCoverOf("agent-server/apps/manual", claimed) === "manual" && hiveCoverOf(null, claimed) === "awaiting" && hiveToneOf("manual")[0] > hiveToneOf("manual")[2], "cover is a claim against the module: T27, manual, or awaiting; no decoration chooses it"); +check(/fieldRoot\.rotation\.x = Math\.PI \/ 2/.test(combSrc) && /new ArcRotateCamera\("cam", Math\.PI \/ 2, Math\.PI \/ 2/.test(combSrc) && /data-orientation", "facing"/.test(combSrc), "the comb is a wall facing the player, not a horizontal board (the user, 2026-09-06)"); +check(/HIVE_TONES\.hover/.test(combSrc) && /hiveToneOf\(covers\[i\]\)/.test(combSrc) && /queen27-hive-law/.test(combSrc), "hover is honey while cell claims follow the law, and the legend names that law"); +check(/fieldRoot\.position\.y = Math\.sin\(nowMs \/ 6400\) \* 7/.test(combSrc), "the wall floats; the drift is small enough not to steal the cell from under the pointer"); +check(/camera\.target\.y \+= \(-anchor\.z - camera\.target\.y\) \* k/.test(combSrc) && /const p = planeAt\(x, y\)/.test(combSrc), "zoom and picking use the same vertical wall-plane coordinates"); +check(/host\.setAttribute\("data-event-cards", String\(latest\.length\)\)/.test(combSrc) && /const EVENT_CARD_POOL = 12/.test(combSrc) && /new DynamicTexture\(`event-card-\$\{k\}`, 256/.test(combSrc), "the latest wire events become bounded display cards on their cells, capped at a readable twelve"); +check(/function useT27Coverage\(\)/.test(src) && /fetch\("t27\/manifest\.json"/.test(src) && /spec\.repo !== "trinity"/.test(src) && /hiveKey\(value\)/.test(src), "yellow is claimed only by trinity rows read from the real T27 manifest, not by an issue label or a guess"); +check(/hiveLawT27:\s*"T27 covered"/.test(src) && /hiveLawManual:\s*"manual code"/.test(src) && /hiveLawAwaiting:\s*"awaiting T27"/.test(src) && /hiveLawBees:\s*"bees"/.test(src), "the English colour-law words exist"); +check(/hiveLawT27:\s*"покрыто T27"/.test(src) && /hiveLawManual:\s*"ручной код"/.test(src) && /hiveLawAwaiting:\s*"ждёт T27"/.test(src) && /hiveLawBees:\s*"пчёлы"/.test(src), "the Russian colour-law words exist"); check(decisionDetail({ allowed: false, refusal: null }, 0, 1, L) !== "0 executing now", "self-test"); if (fails.length) { for (const f of fails) console.log(" ✗ " + f); console.log(`Queen honesty contract: FAIL (${fails.length})`); process.exit(1); } diff --git a/apps/website/scripts/queen-kie-assets.mjs b/apps/website/scripts/queen-kie-assets.mjs new file mode 100644 index 0000000000..20720143c4 --- /dev/null +++ b/apps/website/scripts/queen-kie-assets.mjs @@ -0,0 +1,100 @@ +#!/usr/bin/env node +// Optional KIE.AI asset front end for the hive display. +// +// Status, 2026-09-06: the supplied key is NOT usable. The API answers +// 401 Unauthorized / "Organization access is disabled", so this repository +// contains no generated cards and the Babylon comb remains pure geometry. +// Run this only after an organization-enabled KIE_API_KEY exists. The key is +// deliberately read from the environment and never written to git. +import { mkdir, writeFile } from "node:fs/promises"; +import { dirname, resolve } from "node:path"; +import { fileURLToPath } from "node:url"; + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), ".."); +const OUT_DIR = resolve(ROOT, "public/queen/kie"); +const API = "https://api.kie.ai/api/v1"; + +const ASSETS = { + "event-card": "square card face for a dark science-fiction strategy HUD, raised honeycomb cell, deep near-black green background, one subtle honey-yellow border, crisp geometric slots for text, no letters, no numbers, no logos", + "cell-frame": "single hexagonal honeycomb frame for a dark science-fiction strategy game, precise thin luminous rim, near-black green interior, subtle depth and wax material, centered with clear outer margin, no text, no logo", +}; + +const args = process.argv.slice(2); +const argOf = (name) => { + const at = args.indexOf(`--${name}`); + return at >= 0 && args[at + 1] ? args[at + 1] : null; +}; +const asset = argOf("asset") ?? "event-card"; +const promptOverride = argOf("prompt"); +const seed = Number.parseInt(argOf("seed") ?? "27050", 10); + +if (!Object.hasOwn(ASSETS, asset)) { + console.error(`unknown --asset ${asset}; choose ${Object.keys(ASSETS).join(", ")}`); + process.exit(2); +} +if (!Number.isInteger(seed) || seed < 0 || seed > 2_147_483_647) { + console.error("--seed must be an integer from 0 through 2147483647"); + process.exit(2); +} + +const key = process.env.KIE_API_KEY; +if (!key) { + console.error("KIE_API_KEY is required. Do not paste keys into this script."); + process.exit(2); +} + +const headers = { Authorization: `Bearer ${key}`, "Content-Type": "application/json" }; +const request = async (url, init = {}) => { + const response = await fetch(url, { ...init, headers: { ...headers, ...(init.headers ?? {}) } }); + const text = await response.text(); + let body; + try { body = JSON.parse(text); } catch { body = { raw: text }; } + if (!response.ok) { + throw new Error(`KIE ${response.status}: ${typeof body === "object" ? body.msg ?? body.error ?? text : text}`); + } + return body; +}; + +const created = await request(`${API}/jobs/createTask`, { + method: "POST", + body: JSON.stringify({ + model: "bytedance/seedream-v4-text-to-image", + input: { + prompt: promptOverride ?? ASSETS[asset], + image_size: "square_hd", + image_resolution: "1K", + max_images: 1, + seed, + nsfw_checker: true, + }, + }), +}); +const taskId = created?.data?.taskId ?? created?.result?.task_id ?? created?.task_id; +if (!taskId) throw new Error(`KIE created no task id: ${JSON.stringify(created)}`); +console.log(`KIE task ${taskId}`); + +const deadline = Date.now() + 5 * 60_000; +let urls = []; +for (;;) { + await new Promise((r) => setTimeout(r, 4_000)); + const record = await request(`${API}/jobs/recordInfo?taskId=${encodeURIComponent(taskId)}`); + const state = record?.data?.state ?? record?.state; + console.log(`state ${state}`); + if (state === "success") { + urls = record?.data?.resultUrls ?? record?.result_urls ?? record?.resultUrls ?? []; + break; + } + if (state === "failed" || Date.now() > deadline) { + throw new Error(`KIE task did not succeed: ${JSON.stringify(record).slice(0, 1000)}`); + } +} +if (urls.length === 0) throw new Error("KIE success carried no resultUrls"); + +await mkdir(OUT_DIR, { recursive: true }); +for (const [n, url] of urls.entries()) { + const image = await fetch(url); + if (!image.ok) throw new Error(`download failed (${image.status})`); + const file = resolve(OUT_DIR, `${asset}-${seed}-${taskId}${n ? `-${n}` : ""}.png`); + await writeFile(file, Buffer.from(await image.arrayBuffer())); + console.log(file); +} diff --git a/apps/website/src/components/QueenCombBabylon.tsx b/apps/website/src/components/QueenCombBabylon.tsx index 2058466037..86e77355b8 100644 --- a/apps/website/src/components/QueenCombBabylon.tsx +++ b/apps/website/src/components/QueenCombBabylon.tsx @@ -1,11 +1,11 @@ -// The comb in Babylon.js as a GAME FIELD (the user, 2026-09-04 11:10Z, with a -// StarCraft screenshot: "I want a field like THIS"): one continuous plate of -// steel tiles with the mark engraved in every tile, low-poly buildings with -// volume standing where the cards stand, bees as units on the ground, an RTS -// camera (fixed angle, zoom, no idle sway). The cells still come from -// summariseCells, so placement, picking, the pairing of bees to running cards -// and the event glints keep their rules; only the picture changed. Buildings -// are procedural until the user names an asset pack (B-5). +// The comb in Babylon.js as a HIVE DISPLAY (the user, 2026-09-06): a vertical +// honeycomb wall floating right in front of the player — not a board lying on +// the ground. No 3D models: every fact is a cell (rim, cap, colour, card). +// Cells rise toward the hand on hover and tap; the pointer is answered with +// honey. Colour is law: yellow T27 coverage, neon blue awaiting a spec, red +// hand-written code. The Queen at the centre is the mark itself — the logo +// inside the hub cell — and the latest wire events land in their cells as +// cards, so the comb works as the hive's display. import { ImageProcessingConfiguration } from "@babylonjs/core/Materials/imageProcessingConfiguration"; import { useEffect, useRef , useImperativeHandle } from "react"; import type { Ref } from "react"; @@ -14,34 +14,29 @@ import { Engine } from "@babylonjs/core/Engines/engine"; import { Scene } from "@babylonjs/core/scene"; import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera"; import { Camera } from "@babylonjs/core/Cameras/camera"; -import { Vector3, Matrix, Quaternion } from "@babylonjs/core/Maths/math.vector"; +import { Vector3, Matrix } from "@babylonjs/core/Maths/math.vector"; import { Color3, Color4 } from "@babylonjs/core/Maths/math.color"; import { Mesh } from "@babylonjs/core/Meshes/mesh"; import { VertexBuffer } from "@babylonjs/core/Buffers/buffer"; import { StandardMaterial } from "@babylonjs/core/Materials/standardMaterial"; import { DynamicTexture } from "@babylonjs/core/Materials/Textures/dynamicTexture"; -import { SpriteManager } from "@babylonjs/core/Sprites/spriteManager"; -import { Sprite } from "@babylonjs/core/Sprites/sprite"; import { CreateLineSystem, CreateDashedLines } from "@babylonjs/core/Meshes/Builders/linesBuilder"; import { CreateCylinder } from "@babylonjs/core/Meshes/Builders/cylinderBuilder"; +import { CreateGround } from "@babylonjs/core/Meshes/Builders/groundBuilder"; import { HemisphericLight } from "@babylonjs/core/Lights/hemisphericLight"; import { DirectionalLight } from "@babylonjs/core/Lights/directionalLight"; import "@babylonjs/core/Lights/Shadows/shadowGeneratorSceneComponent"; import { GlowLayer } from "@babylonjs/core/Layers/glowLayer"; import "@babylonjs/core/Layers/effectLayerSceneComponent"; import "@babylonjs/core/Meshes/thinInstanceMesh"; -import { LoadAssetContainerAsync } from "@babylonjs/core/Loading/sceneLoader"; -import "@babylonjs/loaders/glTF"; -import type { AbstractMesh } from "@babylonjs/core/Meshes/abstractMesh"; -import type { PBRMaterial } from "@babylonjs/core/Materials/PBR/pbrMaterial"; -import type { BaseTexture } from "@babylonjs/core/Materials/Textures/baseTexture"; import type { LinesMesh } from "@babylonjs/core/Meshes/linesMesh"; import { PointerEventTypes } from "@babylonjs/core/Events/pointerEvents"; import { Ray } from "@babylonjs/core/Culling/ray"; -import { S } from "./QueenComb"; -import { buildingPlan, eventTone, ringTone, type BeeLine, type HudEvent, type HudModule, type HudPick, type Tone , eventIdentity , hexCellSummaries, hexIndexAt, hexCornersAt, HEX_HOME, HEX_R, foundationCells, honeyTone, spiralAxial, S_CELL, type FoundationIssue, +import { S, EDGES } from "./QueenComb"; +import { eventTone, ringTone, type BeeLine, type HudEvent, type HudModule, type HudPick, type Tone , eventIdentity , hexCellSummaries, hexIndexAt, hexCornersAt, HEX_HOME, HEX_R, foundationCells, spiralAxial, S_CELL, type FoundationIssue, FIELD_LAYERS, type FieldLayer, type CombHandle, - castlePlaces, ringOfEpic, towerStage, ringSummary, ringFamily, familyTint, ringOfModulePath, epicOfIssue, hexRingStart, CASTLE_RING, type TowerStage, type EpicRecord, + castlePlaces, ringOfEpic, towerStage, ringFamily, familyTint, ringOfModulePath, epicOfIssue, type TowerStage, type EpicRecord, + HIVE_TONES, hiveCoverOf, hiveToneOf, type HiveCover, } from "./queenHud"; interface SpikeCard { @@ -74,94 +69,23 @@ interface QueenCombBabylonProps { layers?: Record; /** The toolbar's zoom and fit, the same handle the canvas comb exposes. */ handleRef?: Ref; + /** hiveKey'd names the T27 corpus claims; a cell against this set is yellow, without it red (manual), no module blue. */ + t27Coverage?: ReadonlySet | null; + /** The colour law's words, in the page's language, for the legend above the field. */ + law?: { t27: string; manual: string; awaiting: string; bees: string }; } -// the plan's part kinds map to models the field loads: annexes are the -// platform, antennae the dish; the core is the plan's own key type Territory = "held" | "neutral" | "fog"; const LINES: readonly BeeLine[] = ["scribe", "wright", "lapidary"]; const TONE_HEX: Record = { gold: "#FFD45A", cold: "#FF6B6B", green: "#00FF88", cyan: "#64DCFF", muted: "#FFFFFF" }; const EMPTY_EVENTS: HudEvent[] = []; const RING_POOL = 24; -const COLUMNS = ["backlog", "running", "review", "done", "blocked", "dropped"] as const; -type Column = (typeof COLUMNS)[number]; -// Kenney Space Kit (CC0, kenney.nl), the user's "download it yourself, open -// source": one model per building state, three for done cards, the Queen's -// hangar, crystals, and units. Served from public/queen/models. -const MODELS = { - // ONE KIT (Kenney Hexagon Kit, CC0). The kingdom is built from one set of - // parts, so a silhouette on the field always means the same thing. - // the CODE layer: the settlement a module becomes, by the column it sits in - backlog: "hex-building-cabin", running: "hex-building-mill", review: "hex-building-archery", - done: "hex-building-house", doneDepot: "hex-building-market", doneSilo: "hex-building-farm", - blocked: "hex-building-wall", dropped: "hex-stone-rocks", - // the CASTLE layer: a plinth per ring, a tower by the stage of its epics - plinth: "hex-stone", walls: "hex-building-walls", tower: "hex-building-tower", - wizardTower: "hex-building-wizard-tower", unitTower: "hex-unit-tower", - // the throne at the hub, always visible: the Queen's own castle - keep: "hex-building-castle", -} as const; -type ModelKey = keyof typeof MODELS; -/** Point-in-down-triangle for the cell under a world point (x, z). */ -/** - * Load a Kenney GLB and merge it into one mesh with a multi-material, so it - * can be thin-instanced like the procedural templates. Returns the mesh and - * its footprint (the flat width: min of width and depth) and base (min y), both in model - * units, so the caller can scale it to a cell and stand it on the ground. - */ -async function loadTemplate(scene: Scene, key: ModelKey): Promise<{ mesh: Mesh; footprint: number; base: number; height: number; width: number; depth: number } | null> { - try { - if (scene.isDisposed) return null; - const container = await LoadAssetContainerAsync(`./queen/models/${MODELS[key]}.glb`, scene); - // the view may have switched while the file was in flight: a disposed - // scene has no engine program to compile materials on - if (scene.isDisposed) { container.dispose(); return null; } - const parts = container.meshes.filter((m): m is Mesh => m instanceof Mesh && m.getTotalVertices() > 0); - if (parts.length === 0) return null; - // Kenney's models are flat palette colours: a StandardMaterial carries - // them as well as the glTF PBR one, lights like the rest of the field, - // and needs no BRDF lookup texture - the async generation of that texture - // ran its callback on a disposed engine when the view switched mid-load - // (TypeError: reading 'program' in bindSamplers), which the viewport gate - // counted as a failure. - for (const m of parts) { - const src = m.material as (PBRMaterial & { albedoTexture?: BaseTexture | null; albedoColor?: Color3 }) | null; - if (src && src.getClassName() === "PBRMaterial") { - const flat = new StandardMaterial(`${src.name}-flat`, scene); - if (src.albedoTexture) flat.diffuseTexture = src.albedoTexture; - if (src.albedoColor) flat.diffuseColor = src.albedoColor.clone(); - flat.specularColor = new Color3(0.12, 0.12, 0.14); - flat.specularPower = 32; - m.material = flat; - src.dispose(false, false); - } - } - // bake the glTF root transform (right-handed -> left-handed flip) into the vertices - for (const m of parts) { m.computeWorldMatrix(true); m.bakeCurrentTransformIntoVertices(); } - const merged = parts.length === 1 ? parts[0] : Mesh.MergeMeshes(parts, true, true, undefined, false, true); - if (!merged) return null; - merged.setParent(null); - merged.position.set(0, 0, 0); merged.rotationQuaternion = null; merged.rotation.set(0, 0, 0); merged.scaling.set(1, 1, 1); - merged.computeWorldMatrix(true); - const b = merged.getBoundingInfo().boundingBox; - // a hex tile measures 1.000 flat-to-flat and 1.1547 corner-to-corner, so the - // FLAT width is the fit: dividing by the larger left a moat around every building - const footprint = Math.min(b.maximum.x - b.minimum.x, b.maximum.z - b.minimum.z) || 1; - merged.isVisible = false; merged.isPickable = false; - scene.addMesh(merged); - for (const m of container.meshes) if (m !== merged && !(m as AbstractMesh).isDisposed()) m.dispose(); - return { mesh: merged, footprint, base: b.minimum.y, height: b.maximum.y - b.minimum.y, width: b.maximum.x - b.minimum.x, depth: b.maximum.z - b.minimum.z }; - } catch { - return null; - } -} - const ALL_LAYERS: Record = { foundation: true, castle: true, code: true }; -export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fitInset = 0, events = EMPTY_EVENTS, modules, beeTargets, foundation = null, layers = ALL_LAYERS, handleRef }: QueenCombBabylonProps) { +export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fitInset = 0, events = EMPTY_EVENTS, modules, beeTargets, foundation = null, layers = ALL_LAYERS, handleRef, t27Coverage = null, law }: QueenCombBabylonProps) { const hostRef = useRef(null); const canvasRef = useRef(null); const cardRef = useRef(null); @@ -183,6 +107,9 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit workers?.slots.map((s) => [s.slot, s.state]) ?? null, // a new snapshot of the foundation rebuilds the honey like a modules change rebuilds the city foundation ? [foundation.generatedAt, foundation.issues.length] : null, + // a new claim from the spec corpus re-colours the law; the words re-word the legend + t27Coverage ? t27Coverage.size : null, + law ? [law.t27, law.manual, law.awaiting, law.bees] : null, ]); const cardsRef = useRef(cards); const workersRef = useRef(workers); @@ -190,6 +117,8 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit const targetsRef = useRef(beeTargets); const foundationRef = useRef(foundation); const layersRef = useRef(layers); + const coverageRef = useRef(t27Coverage); + const lawRef = useRef(law); const cameraRef = useRef(null); useEffect(() => { cardsRef.current = cards; @@ -198,7 +127,9 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit targetsRef.current = beeTargets; foundationRef.current = foundation; layersRef.current = layers; - }, [cards, workers, modules, beeTargets, foundation, layers]); + coverageRef.current = t27Coverage; + lawRef.current = law; + }, [cards, workers, modules, beeTargets, foundation, layers, t27Coverage, law]); useImperativeHandle(handleRef, () => ({ zoomIn: () => cameraRef.current?.zoomIn(), @@ -220,6 +151,14 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit host.setAttribute("data-castle-source", fdNow ? fdNow.source : "none"); if (!fdNow) { host.removeAttribute("data-castle-stages"); host.removeAttribute("data-castle-rings"); host.removeAttribute("data-castle-unassigned"); host.removeAttribute("data-castle-releases"); } const engine = new Engine(canvas, true, { preserveDrawingBuffer: false, stencil: false }, false); + // Sharpness (the user, 2026-09-06: "сделай качество выше"). The engine was + // rendering one sample per CSS pixel, so on a 2x display every line on the + // comb was drawn at half the resolution of the screen it lands on. Capped at + // 2x: past that the comb costs four times the pixels for nothing the eye + // gets. Babylon's own picking divides by the same scaling level, so the pan, + // the wheel and the pick keep working - proved by the pick, void and touch + // gates rather than assumed. + engine.setHardwareScalingLevel(1 / Math.min(2, Math.max(1, window.devicePixelRatio || 1))); const scene = new Scene(engine); scene.clearColor = new Color4(2 / 255, 8 / 255, 6 / 255, 1); scene.skipPointerMovePicking = true; @@ -240,34 +179,49 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit ipc.applyByPostProcess = true; scene.fogMode = Scene.FOGMODE_LINEAR; scene.fogColor = new Color3(2 / 255, 8 / 255, 6 / 255); - const glow = new GlowLayer("glow", scene, { blurKernelSize: 24 }); - glow.intensity = 0.55; + // a tighter, dimmer bloom: at kernel 24 the centre of the comb smeared into + // one haze because a thousand lit rims bled into each other + const glow = new GlowLayer("glow", scene, { blurKernelSize: 12 }); + glow.intensity = 0.42; - // ---- extents and the RTS camera: fixed angle, zoom, no idle sway ------ + // ---- extents and the floating wall: vertical, facing the player ------ let minX = Infinity, maxX = -Infinity, minZ = Infinity, maxZ = -Infinity; for (const c of cells) { minX = Math.min(minX, c.x - S / 2); maxX = Math.max(maxX, c.x + S / 2); minZ = Math.min(minZ, c.y - HEX_R); maxZ = Math.max(maxZ, c.y + HEX_R); } const centre = new Vector3((minX + maxX) / 2, 0, (minZ + maxZ) / 2); - const camera = new ArcRotateCamera("cam", Math.PI / 2 + 0.55, 0.95, 4000, centre.clone(), scene); - // the ground is a plane, not a mesh: a screen point becomes a world point by - // solving the picking ray against y = PICK_Y, the height the comb is drawn on - const PICK_Y = 1.5; + // THE WALL (the user, 2026-09-06: "поле не по горизонтали лежащим, а прямо + // перед лицом парящее"). The comb keeps its own flat coordinates (x, z per + // cell, y as height toward the board); one root turns that plane into the + // wall the player faces — local (x, y, z) becomes world (x, -z, y). The + // camera sits dead in front at +Z, so the honeycomb hangs in the air at eye + // height and a cell's lift (its local y) comes TOWARD the hand instead of + // away from it. Every position below stays in comb coordinates; only the + // pick and the pan convert world to comb. + const fieldRoot = new TransformNode("field-root", scene); + fieldRoot.rotation.x = Math.PI / 2; + // the wall's world centre: the root maps comb (x, z) to world (x, -z) + const centreWorld = new Vector3(centre.x, -centre.z, 0); + const camera = new ArcRotateCamera("cam", Math.PI / 2, Math.PI / 2, 4000, centreWorld.clone(), scene); + // the wall is a plane, not a mesh: a screen point becomes a comb point by + // solving the picking ray against z = 0, the plane the comb is drawn on const pickRay = new Ray(Vector3.Zero(), Vector3.Up(), Number.MAX_VALUE); - const groundAt = (x: number, y: number): { x: number; z: number } | null => { + const planeAt = (x: number, y: number): { x: number; z: number } | null => { scene.createPickingRayToRef(x, y, null, pickRay, camera); - const dy = pickRay.direction.y; - if (Math.abs(dy) < 1e-6) return null; - const t = (PICK_Y - pickRay.origin.y) / dy; + const dz = pickRay.direction.z; + if (Math.abs(dz) < 1e-6) return null; + const t = -pickRay.origin.z / dz; if (t < 0) return null; - return { x: pickRay.origin.x + pickRay.direction.x * t, z: pickRay.origin.z + pickRay.direction.z * t }; + const wx = pickRay.origin.x + pickRay.direction.x * t; + const wy = pickRay.origin.y + pickRay.direction.y * t; + return { x: wx, z: -wy }; }; const depth = Math.max(maxX - minX, maxZ - minZ); scene.fogStart = 4000 - depth * 0.1; scene.fogEnd = 4000 + depth * 1.4; camera.mode = Camera.ORTHOGRAPHIC_CAMERA; - camera.lowerBetaLimit = 0.95; camera.upperBetaLimit = 0.95; + camera.lowerBetaLimit = Math.PI / 2; camera.upperBetaLimit = Math.PI / 2; camera.lowerAlphaLimit = camera.alpha; camera.upperAlphaLimit = camera.alpha; camera.panningSensibility = 0; let zoom = 1; @@ -278,13 +232,18 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit let castleLinks: { plinthOfRing: Map; ringOfCell: Map; cellsOfRing: Map; epics: EpicRecord[]; rings: string[] } | null = null; let linkLines: LinesMesh | null = null; let linkFor: string | null = null; let rootLines: LinesMesh | null = null; - // three transform nodes carry the layers: a disabled parent hides its thin-instanced children without touching a buffer - const layerNodes: Record = { foundation: new TransformNode("layer-foundation", scene), castle: new TransformNode("layer-castle", scene), code: new TransformNode("layer-code", scene) }; + // three transform nodes carry the layers: a disabled parent hides its children without touching a buffer + const layerNodes = Object.fromEntries(FIELD_LAYERS.map((layer) => { + const node = new TransformNode(`layer-${layer}`, scene); + node.parent = fieldRoot; + return [layer, node]; + })) as Record; const fit = () => { const w = host.clientWidth || 1, h = host.clientHeight || 1; const inset = insetRef.current; const band = h * (1 - inset); - const fieldW = (maxX - minX + S) * 1.02, fieldH = (maxZ - minZ + S) * Math.cos(camera.beta) * 1.02 + S * 1.3; + // the wall is parallel to the screen: width and height map one to one + const fieldW = (maxX - minX + S) * 1.04, fieldH = (maxZ - minZ + S) * 1.08; const aspect = w / band; let halfW = fieldW / 2, halfH = halfW / aspect; if (halfH < fieldH / 2) { halfH = fieldH / 2; halfW = halfH * aspect; } @@ -297,20 +256,18 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit host.setAttribute("data-zoom", zoom.toFixed(2)); }; fit(); - // the map answers the hand (the user, 2026-09-06). The camera had no inputs - // at all: attachControl was never called, so panningSensibility configured - // a manager that does not exist and a drag moved nothing. Both the drag and - // the wheel now work against the same y = 0 plane the pick uses, so the - // point under the cursor is the point that follows it. + // the wall answers the hand (the user, 2026-09-06). Both the drag and the + // wheel work against the same z = 0 plane the pick uses, so the point under + // the cursor is the point that follows it; pan runs in the wall's own axes. const ROAM = Math.max(maxX - minX, maxZ - minZ) * 0.55; const clampTarget = () => { camera.target.x = Math.min(Math.max(camera.target.x, centre.x - ROAM), centre.x + ROAM); - camera.target.z = Math.min(Math.max(camera.target.z, centre.z - ROAM), centre.z + ROAM); + camera.target.y = Math.min(Math.max(camera.target.y, -centre.z - ROAM), -centre.z + ROAM); }; const onWheel = (e: WheelEvent) => { e.preventDefault(); const r = canvas.getBoundingClientRect(); - anchor = groundAt(e.clientX - r.left, e.clientY - r.top); + anchor = planeAt(e.clientX - r.left, e.clientY - r.top); zoomGoal = Math.min(8, Math.max(0.5, zoomGoal * Math.exp(-e.deltaY * 0.0016))); host.setAttribute("data-zoom-goal", zoomGoal.toFixed(2)); }; @@ -320,8 +277,8 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit const onMove = (e: PointerEvent) => { if (!grab) return; const r = canvas.getBoundingClientRect(); - const a = groundAt(grab.x - r.left, grab.y - r.top), b = groundAt(e.clientX - r.left, e.clientY - r.top); - if (a && b) { camera.target.x += a.x - b.x; camera.target.z += a.z - b.z; clampTarget(); fit(); } + const a = planeAt(grab.x - r.left, grab.y - r.top), b = planeAt(e.clientX - r.left, e.clientY - r.top); + if (a && b) { camera.target.x += a.x - b.x; camera.target.y += b.z - a.z; clampTarget(); fit(); } grab = { x: e.clientX, y: e.clientY }; }; const onUp = (e: PointerEvent) => { grab = null; if (canvas.hasPointerCapture(e.pointerId)) canvas.releasePointerCapture(e.pointerId); }; @@ -334,7 +291,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit zoomIn: () => { anchor = null; zoom = zoomGoal = Math.min(8, zoom * 1.25); fit(); }, zoomOut: () => { anchor = null; zoom = zoomGoal = Math.max(0.5, zoom / 1.25); fit(); }, // FIT VIEW is the way home: it undoes the roam as well as the zoom - fit: () => { anchor = null; zoom = zoomGoal = 1; camera.target.copyFrom(centre); fit(); }, + fit: () => { anchor = null; zoom = zoomGoal = 1; camera.target.copyFrom(centreWorld); fit(); }, }; // ---- light: a sun from the upper left and a soft sky, shadows on ----- @@ -353,48 +310,20 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit // sun where there is no field. It carried no fact and it was the only // straight edge on the board. y = 0 is a plane; a plane has no vertices, // no material and no draw call, and the pick solves against it in maths. - // ---- buildings: one Hexagon Kit model per cell, thin-instanced --------- - // No stand-ins (V-10). Until a GLB resolves the cell stays empty, and a - // model that fails to load reports itself on the host, instead of leaving - // 26 boxes and cylinders behind in a second, sci-fi art language. - interface Template { matrices: number[]; scales: number[]; turns: number[]; heights: number[]; colors: number[] } - const emptyTemplate = (): Template => ({ matrices: [], scales: [], turns: [], heights: [], colors: [] }); - const mods = modulesRef.current; - const nowWall = Date.now(); - const templates: Record = Object.fromEntries(COLUMNS.map((c) => [c, emptyTemplate()])) as Record; - const doneDepot = emptyTemplate(), doneSilo = emptyTemplate(); - cells.forEach((c, i) => { - if (i === home) return; - const card = cards[i]; - if (!card) return; - const col = (COLUMNS as readonly string[]).includes(card.column) ? (card.column as Column) : "backlog"; - const m = mods?.get(card.number); - const templateOf = (key: string) => (key === "doneDepot" ? doneDepot : key === "doneSilo" ? doneSilo : templates[(key in templates ? key : "backlog") as Column]); - // no tint on the settlements: the kit's own palette reads, and colour on - // this field means one thing only - gold is done (the comb carries it) - const tint: [number, number, number, number] = [1, 1, 1, 1]; - const push = (t: Template, x: number, z: number, k: number, h: number, turn: number, y = 0) => { - t.matrices.push(...Matrix.Compose(new Vector3(k, k * h, k), Quaternion.RotationAxis(Vector3.Up(), turn), new Vector3(x, y, z)).toArray()); - t.scales.push(k); t.turns.push(turn); t.heights.push(h); t.colors.push(...tint); - }; - if (m) { - // ONE model per cell. Every Hexagon Kit building carries its own hex - // base, so the old multi-part plan stacked hex on hex and the middle of - // the field turned to mush. The plan still chooses the core and the - // turn; a module with an open issue shows the wall instead of its trade. - const plan = buildingPlan(m); - const key = m.openIssues.length > 0 && plan.core !== "blocked" ? "blocked" : plan.core; - push(templateOf(key), c.x, c.y, 1, 1, plan.turn); - } else { - const key = col === "done" ? (["done", "doneDepot", "doneSilo"] as const)[card.number % 3] : col; - push(templateOf(key), c.x, c.y, 1, 1, 0); - } - }); + // ---- no buildings: the kit is gone, the cell IS the fact --------------- + // (the user, 2026-09-06: "убери 3D объекты а то шума много"). The whole + // Hexagon Kit block — templates, thin instances, per-column depots — went + // with the GLBs; what remains is pure comb geometry. + // the colour law's cover for a cell: T27 if the corpus claims the module, + // manual if there is hand-written code and no claim, awaiting otherwise + const covered = coverageRef.current ?? new Set(); + const coverOf = (i: number): HiveCover => hiveCoverOf(cards[i]?.title ?? null, covered); + const covers: HiveCover[] = cells.map((_, i) => coverOf(i)); - // ---- rings: picked (gold), hover (dashed, territory colour) --------- + // ---- rings: picked (gold), hover (dashed, honey) -------------------- const ring7 = () => [Array.from({ length: 7 }, () => new Vector3(0, 0, 0))]; const picked = CreateLineSystem("picked", { lines: ring7(), updatable: true }, scene); - picked.color = Color3.FromHexString("#FFD45A"); picked.isPickable = false; + picked.color = Color3.FromHexString(HIVE_TONES.t27); picked.isPickable = false; picked.parent = fieldRoot; // a cell's outline is its hexagon, inset a little so the ring reads as the cell's, not the neighbour's const hexOf = (i: number): [number, number][] => hexCornersAt(cells[i].x, cells[i].y, HEX_R, 4).map((c) => [c.x, c.y]); const placeRing = (mesh: LinesMesh, i: number, y: number) => { @@ -406,7 +335,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit mesh.isVisible = true; }; const hovered = CreateDashedLines("hover", { points: Array.from({ length: 7 }, (_, k) => new Vector3(Math.cos(k), 0, Math.sin(k))), dashSize: 3, gapSize: 2, dashNb: 60, updatable: true }, scene); - hovered.alpha = 0.8; hovered.isPickable = false; hovered.isVisible = false; + hovered.alpha = 0.9; hovered.isPickable = false; hovered.isVisible = false; hovered.parent = fieldRoot; // the hover card (the user, 2026-09-06): the hovered cell's issue, named beside the pointer let hoverIssue = -1; let pointerXY: [number, number] = [0, 0]; @@ -422,7 +351,10 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit hoverIssue = issue.number; const head = document.createElement("b"); head.textContent = `#${issue.number} ${issue.title}`; const meta = document.createElement("span"); - meta.textContent = [issue.closedAt.slice(0, 16).replace("T", " "), ...issue.labels].join(" \u00b7 "); + const cover = coverOf(i); + const coverWord = cover === "t27" ? "T27" : cover === "manual" ? "MANUAL CODE" : "AWAITING T27"; + meta.textContent = [issue.closedAt.slice(0, 16).replace("T", " "), ...issue.labels, coverWord].join(" \u00b7 "); + meta.dataset.cover = cover; card.replaceChildren(head, meta); card.setAttribute("aria-hidden", "false"); host.setAttribute("data-hover-issue", String(issue.number)); @@ -434,30 +366,16 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit const placeDashed = (i: number, y: number) => { const p = hexOf(i); CreateDashedLines("hover", { points: [...p, p[0]].map(([px, pz]) => new Vector3(px, y, pz)), dashSize: 3, gapSize: 2, dashNb: 60, instance: hovered }, scene); - hovered.color = Color3.FromHexString(ringTone(cells[i].own as Territory)); + // honey, not territory: the hand is looking for nectar (the user, + // 2026-09-06: "не цветом говна выделять карточку! я медоносным цветом!") + hovered.color = Color3.FromHexString(HIVE_TONES.hover); hovered.isVisible = true; }; - // ---- sprites: the Queen's portrait, crystals, bees as units ---------- - const managers = new Map(); - const manager = (name: string, capacity: number) => { - let m = managers.get(name); - if (!m) { - m = new SpriteManager(name, `./queen/${name}-256.png`, capacity, { width: 256, height: 256 }, scene); - m.isPickable = false; - managers.set(name, m); - } - return m; - }; - const put = (name: string, cell: number, size: number, lift: number, capacity = 64) => { - const c = cells[cell]; - if (!c) return null; - const s = new Sprite(name, manager(name, capacity)); - s.width = size; s.height = size; - s.position = new Vector3(c.x, lift + size / 2, c.y); - return s; - }; - put("queen", home, S * 0.6, S * 0.28, 1); + // ---- no sprites: the Queen is the mark, the swarm is motes ----------- + // (the user, 2026-09-06: "а королева в центре наш логотип! это и есть + // королева"). The portrait sprite went with the buildings; the mark in the + // hub cell below IS the Queen. const ring = cells .map((c, i) => ({ i, d: (c.x - cells[home].x) ** 2 + (c.y - cells[home].y) ** 2 })) .filter((e) => e.i !== home) @@ -474,7 +392,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit interface Bee { slot: number; busy: boolean; work: boolean; from: number; to: number; t: number; speed: number; hover: number; line: BeeLine; mote: Mesh } const bees: Bee[] = (workers?.slots ?? []).map((slot, k) => { const mote = CreateCylinder(`bee-${slot.slot}`, { tessellation: 6, diameter: S * 0.2, height: 5 }, scene); - mote.material = moteMat; mote.isPickable = false; mote.isVisible = false; + mote.material = moteMat; mote.isPickable = false; mote.isVisible = false; mote.parent = fieldRoot; glow.referenceMeshToUseItsOwnMaterial(mote); return { slot: slot.slot, busy: false, work: false, from: home, to: home, t: 1, speed: 0, hover: k * 1.7, line: LINES[k % LINES.length], mote }; }); @@ -494,160 +412,146 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit }; aimBees(); const beeAt = (index: number) => bees.find((b) => (b.t < 0.5 ? b.from : b.to) === index) ?? null; - const flightLines = bees.map((b) => { const m = CreateDashedLines(`flight-${b.slot}`, { points: [new Vector3(0, 0, 0), new Vector3(1, 0, 1)], dashSize: 6, gapSize: 4, dashNb: 40, updatable: true }, scene); m.color = Color3.FromHexString("#64DCFF"); m.alpha = 0.55; m.isPickable = false; m.isVisible = false; return m; }); + const flightLines = bees.map((b) => { const m = CreateDashedLines(`flight-${b.slot}`, { points: [new Vector3(0, 0, 0), new Vector3(1, 0, 1)], dashSize: 6, gapSize: 4, dashNb: 40, updatable: true }, scene); m.color = Color3.FromHexString(HIVE_TONES.awaiting); m.alpha = 0.55; m.isPickable = false; m.isVisible = false; m.parent = fieldRoot; return m; }); - // The glTF loader creates PBR materials, and a PBR material's first use - // schedules the environment BRDF lookup texture, generated asynchronously - // through executeWhenCompiled; when the view switches mid-load that - // callback ran on a disposed engine (TypeError: reading 'program'). The - // models become StandardMaterials anyway, so the scene gets a 2x2 stand-in - // BRDF texture up front and nothing is ever generated. - if (!scene.environmentBRDFTexture) scene.environmentBRDFTexture = new DynamicTexture("brdf-none", 2, scene, false); - // ---- the Kenney models replace the procedural templates as they load; - // a model that fails to load leaves its procedural stand-in -------- - let disposed = false; - const modelInstances = new Map(); - const placeModel = (t: { mesh: Mesh; footprint: number; base: number }, matrices: number[], target: number, scales: number[] = [], turns: number[] = [], heights: number[] = [], colors: number[] = []) => { - if (disposed || scene.isDisposed || matrices.length === 0) return; - const out: number[] = []; - for (let i = 0, j = 0; i < matrices.length; i += 16, j += 1) { - const tx = matrices[i + 12], tz = matrices[i + 14]; - const k = (target / t.footprint) * (scales[j] ?? 1), h = heights[j] ?? 1; - out.push(...Matrix.Compose(new Vector3(k, k * h, k), Quaternion.RotationAxis(Vector3.Up(), turns[j] ?? 0), new Vector3(tx, -t.base * k * h, tz)).toArray()); - } - t.mesh.thinInstanceSetBuffer("matrix", new Float32Array(out), 16, true); - // the per-instance tint (M-4): StandardMaterial multiplies its palette by it - if (colors.length === (matrices.length / 16) * 4) t.mesh.thinInstanceSetBuffer("color", new Float32Array(colors), 4, true); - t.mesh.isVisible = true; - }; - void (async () => { - const keys: ModelKey[] = ["backlog", "running", "review", "done", "doneDepot", "doneSilo", "blocked", "dropped", "plinth", "walls", "tower", "wizardTower", "keep", "unitTower"]; - const loaded = await Promise.all(keys.map(async (key) => [key, await loadTemplate(scene, key)] as const)); - const missing = loaded.filter(([, t]) => !t).map(([k]) => k); - host.setAttribute("data-models", `${loaded.length - missing.length}/${loaded.length}`); - if (missing.length > 0) host.setAttribute("data-model-error", missing.join(",")); else host.removeAttribute("data-model-error"); - if (disposed || scene.isDisposed) { for (const [, t] of loaded) t?.mesh.dispose(); return; } - for (const [key, t] of loaded) if (t) { modelInstances.set(key, t); if (["plinth", "wall", "walls", "tower", "wizardTower", "keep", "unitTower"].includes(key)) t.mesh.parent = layerNodes.castle; else if (!["hub", "crystal", "scribe", "wright", "lapidary", "larva"].includes(key)) t.mesh.parent = layerNodes.code; } - const bind = (key: ModelKey, tpl: Template, target: number) => { const t = modelInstances.get(key); if (t) placeModel(t, tpl.matrices, target, tpl.scales, tpl.turns, tpl.heights, tpl.colors); }; - // a building takes about half a cell, so the roads between them still show - // every Hexagon Kit building carries its own hex base, so a settlement is - // scaled to the cell, not to a fraction of it: one cell, one tile, one roof - const CELL_FIT = S_CELL * 0.94; - bind("backlog", templates.backlog, CELL_FIT); bind("running", templates.running, CELL_FIT); bind("review", templates.review, CELL_FIT); - bind("done", templates.done, CELL_FIT); bind("doneDepot", doneDepot, CELL_FIT); bind("doneSilo", doneSilo, CELL_FIT); - bind("blocked", templates.blocked, CELL_FIT); bind("dropped", templates.dropped, CELL_FIT); - // ---- the foundation: one cell per closed GitHub issue, drawn as an outline (the user, 2026-09-06) ---- - // Every hexagon on the field IS a GitHub issue: no filled tile, no honey disc, only the cell's border. - // A cell that carries a closed issue burns in its age's gold (honeyTone); an empty cell is a dim wax line. - host.setAttribute("data-tile", "outline"); - host.setAttribute("data-hex-orient", "pointy"); - try { - if (cells.length > 1) { - const lines: Vector3[][] = []; const lineColours: Color4[][] = []; - let count = 0; let first: string | null = null; let last: string | null = null; - for (let i = 1; i < cells.length; i += 1) { - const corners = hexCornersAt(cells[i].x, cells[i].y, HEX_R, 4); - lines.push([...corners, corners[0]].map((c) => new Vector3(c.x, 1.5, c.y))); - const issue = fCells?.[i] ?? null; - const tone = issue ? honeyTone(issue.closedAt, nowWall) : [0.24, 0.3, 0.28, 1]; - const c4 = new Color4(tone[0], tone[1], tone[2], issue ? 0.95 : 0.28); - lineColours.push(Array.from({ length: 7 }, () => c4)); - if (issue) { const a = spiralAxial(i); const tag = `${issue.number}@${a.q},${a.r}`; if (first === null) first = tag; last = tag; count += 1; } + // ---- the hive: everything is comb, nothing is a model -------------------- + // The user, 2026-09-06: "убери 3D объекты а то шума много", "замки не красиво + // смотрятся, а соты мёд пчёлы классно читается", and a reference image of a + // dark hexagon field with glowing edges. So the kit is gone. Every fact is a + // cell: its rim, its cap, its colour. A hive has no towers. + host.setAttribute("data-look", "hive"); + host.setAttribute("data-models", "0/0"); + host.setAttribute("data-orientation", "facing"); + // A CAPPED cell: in a hive a finished cell is sealed with wax and reads as a + // dark lid inside a bright rim. That is exactly the reference picture, and it + // is what a closed issue is: work sealed. + const capMat = new StandardMaterial("cap", scene); + capMat.diffuseColor = Color3.Black(); + capMat.specularColor = Color3.Black(); + capMat.emissiveColor = new Color3(0.055, 0.075, 0.072); + const caps = CreateCylinder("caps", { tessellation: 6, diameter: 2 * HEX_R * 0.92, height: 2 }, scene); + const cb = caps.getBoundingInfo().boundingBox; + if (cb.maximum.x - cb.minimum.x > cb.maximum.z - cb.minimum.z) { caps.rotation.y = Math.PI / 6; caps.bakeCurrentTransformIntoVertices(); } + caps.material = capMat; caps.isPickable = false; caps.parent = layerNodes.foundation; caps.isVisible = false; + // A cell RISES under the pointer and stays up while it is picked (the user, + // 2026-09-06). This is the reference picture's raised hex, and it is the only + // motion on the field that answers the hand rather than the wire. + const liftMat = new StandardMaterial("lift", scene); + liftMat.diffuseColor = Color3.Black(); liftMat.specularColor = Color3.Black(); + liftMat.emissiveColor = new Color3(0.1, 0.14, 0.135); + const lift = CreateCylinder("lift", { tessellation: 6, diameter: 2 * HEX_R * 0.92, height: 3 }, scene); + const lb = lift.getBoundingInfo().boundingBox; + if (lb.maximum.x - lb.minimum.x > lb.maximum.z - lb.minimum.z) { lift.rotation.y = Math.PI / 6; lift.bakeCurrentTransformIntoVertices(); } + lift.material = liftMat; lift.isPickable = false; lift.isVisible = false; lift.parent = fieldRoot; + let liftIndex = -1; let liftY = 0; + // ---- the comb: one cell per GitHub issue, rim by state ------------------ + try { + if (cells.length > 1) { + const lines: Vector3[][] = []; const lineColours: Color4[][] = []; + const capM: number[] = []; + let count = 0; let first: string | null = null; let last: string | null = null; + for (let i = 1; i < cells.length; i += 1) { + const corners = hexCornersAt(cells[i].x, cells[i].y, HEX_R, 4); + lines.push([...corners, corners[0]].map((c) => new Vector3(c.x, 1.5, c.y))); + const issue = fCells?.[i] ?? null; + // the empty comb is the reference's dim teal wax; a cell with an + // issue burns in the colour LAW: yellow T27, neon blue awaiting, + // red manual code (the user, 2026-09-06) + const tone = issue ? hiveToneOf(covers[i]) : [0.11, 0.34, 0.33, 1]; + const c4 = new Color4(tone[0], tone[1], tone[2], issue ? 0.95 : 0.34); + lineColours.push(Array.from({ length: 7 }, () => c4)); + if (issue) { + capM.push(...Matrix.Translation(cells[i].x, 0.6, cells[i].y).toArray()); + const a = spiralAxial(i); const tag = `${issue.number}@${a.q},${a.r}`; + if (first === null) first = tag; last = tag; count += 1; } - const comb = CreateLineSystem("cells", { lines, colors: lineColours, useVertexAlpha: true }, scene); - comb.isPickable = false; comb.parent = layerNodes.foundation; comb.alwaysSelectAsActiveMesh = true; - glow.referenceMeshToUseItsOwnMaterial(comb); - host.setAttribute("data-foundation-shape", "outline"); - host.setAttribute("data-foundation-cells", String(count)); - host.setAttribute("data-foundation-shown", layersRef.current.foundation ? String(count) : "0"); - if (first) host.setAttribute("data-foundation-first", first); - if (last) host.setAttribute("data-foundation-last", last); } - } catch (e) { - // the field reports its own failure instead of drawing nothing silently - host.setAttribute("data-foundation-error", e instanceof Error ? e.message : String(e)); + const comb = CreateLineSystem("cells", { lines, colors: lineColours, useVertexAlpha: true }, scene); + comb.isPickable = false; comb.parent = layerNodes.foundation; comb.alwaysSelectAsActiveMesh = true; + glow.referenceMeshToUseItsOwnMaterial(comb); + if (capM.length > 0) { caps.thinInstanceSetBuffer("matrix", new Float32Array(capM), 16, true); caps.isVisible = true; } + host.setAttribute("data-foundation-shape", "outline"); + host.setAttribute("data-foundation-cells", String(count)); + host.setAttribute("data-foundation-shown", layersRef.current.foundation ? String(count) : "0"); + const law = { t27: covers.filter((v) => v === "t27").length, manual: covers.filter((v) => v === "manual").length, awaiting: covers.filter((v) => v === "awaiting").length }; + host.setAttribute("data-cover-t27", String(law.t27)); + host.setAttribute("data-cover-manual", String(law.manual)); + host.setAttribute("data-cover-awaiting", String(law.awaiting)); + if (first) host.setAttribute("data-foundation-first", first); + if (last) host.setAttribute("data-foundation-last", last); } - // ---- the castle of the rings (K-2/K-3): a plinth per ring directory on spiral ring 7, a tower by the stage of its epics ---- - try { - const plinthT = modelInstances.get("plinth"); - const rings = fdNow?.rings ?? []; - if (fdNow && plinthT && rings.length > 0 && cells.length > hexRingStart(CASTLE_RING)) { - const places = castlePlaces(rings).filter((pl) => pl.plinth < cells.length); - const epics = fdNow.epics ?? []; - const flatTopP = plinthT.width > plinthT.depth; - const kp = (S_CELL * 0.92) / Math.min(plinthT.width, plinthT.depth); - // the cells are outlines now, so a plinth stands on the plate itself - const lift = 2; - const pm: number[] = []; const pc: number[] = []; - const stageOf = (ring: string): TowerStage => { - const order: TowerStage[] = ["plinth", "walls", "tower", "wizardTower"]; - let best: TowerStage = "plinth"; - for (const e of epics) if (ringOfEpic(e, rings).ring === ring) { const st = towerStage(e); if (order.indexOf(st) > order.indexOf(best)) best = st; } - return best; - }; - const towerMats = new Map(); - const stages: string[] = []; - for (const pl of places) { - const c = cells[pl.plinth]; - pm.push(...Matrix.Compose(new Vector3(kp, kp, kp), Quaternion.RotationAxis(Vector3.Up(), flatTopP ? Math.PI / 6 : 0), new Vector3(c.x, lift - plinthT.base * kp, c.y)).toArray()); - pc.push(...familyTint(ringFamily(pl.ring))); - const st = stageOf(pl.ring); - stages.push(`${pl.ring}:${st}`); - if (st !== "plinth") { - const summary = ringSummary(pl.ring, epics, rings); - const h = 0.6 + 1.4 * (summary.ratio ?? 0); - const list = towerMats.get(st) ?? []; - list.push(...Matrix.Compose(new Vector3(1, h, 1), Quaternion.RotationAxis(Vector3.Up(), 0), new Vector3(c.x, lift + plinthT.height * kp, c.y)).toArray()); - towerMats.set(st, list); - } - } - plinthT.mesh.parent = layerNodes.castle; - placeModel(plinthT, pm, S_CELL * 0.92, places.map(() => 1), places.map(() => (flatTopP ? Math.PI / 6 : 0)), places.map(() => 1), pc); - plinthT.mesh.position.y = lift; // placeModel lifts by -base*k; the plinth stands above the tile - for (const [st, mats] of towerMats) { - const key: ModelKey = st === "walls" ? "walls" : st === "tower" ? "tower" : "wizardTower"; - const t = modelInstances.get(key); - if (!t) continue; - t.mesh.parent = layerNodes.castle; - const hs = Array.from({ length: mats.length / 16 }, (_, j) => mats[j * 16 + 5]); - placeModel(t, mats, S_CELL * 0.6, hs.map(() => 1), hs.map(() => 0), hs, hs.flatMap(() => [1, 1, 1, 1])); - t.mesh.position.y = lift + plinthT.height * kp; - } - const unassigned = epics.filter((e) => ringOfEpic(e, rings).ring === null).length; - // the keep at the hub (K-4): the castle's heart on its own layer; the unassigned epics stand around it as small towers - const keepT = modelInstances.get("keep"); - if (keepT) { - keepT.mesh.parent = layerNodes.castle; - placeModel(keepT, [...Matrix.Translation(cells[home].x, 0, cells[home].y).toArray()], S_CELL * 1.05); - host.setAttribute("data-castle-keep", "1"); - // the unassigned epics were drawn at radius 93 inside the keep's 112.5 - // reach, so nobody ever saw them (V-6): the count testifies instead - } - // the ring names live in the hover card and the panel, not as billboards - // over the comb (V-4): the count still testifies, nothing occludes - host.setAttribute("data-castle-plates", String(places.length)); - // the ring's own cells (K-5) are named by the hover link and the panel. - // The mark discs were flat-top hexes on a pointy-top grid, 30 degrees off - // every one, and a filled tile on a field pinned as outlines (V-3). - const cellsOfRing = new Map(); - cards.forEach((cd, ci) => { if (!cd) return; const rn = ringOfModulePath(cd.title); if (rn && rings.includes(rn)) cellsOfRing.set(rn, [...(cellsOfRing.get(rn) ?? []), ci]); }); - host.setAttribute("data-castle-marks", String([...cellsOfRing.values()].reduce((n, l) => n + l.length, 0))); - castleLinks = { plinthOfRing: new Map(places.map((pl) => [pl.ring, pl.plinth])), ringOfCell: new Map(places.map((pl) => [pl.plinth, pl.ring])), cellsOfRing, epics, rings }; - // the release tags belong in the HUD, not on 19px flags (V-5) - const releases = fdNow.releases ?? []; - host.setAttribute("data-castle-banners", String(Math.min(releases.length, 8))); - host.setAttribute("data-castle-rings", String(places.length)); - host.setAttribute("data-castle-stages", stages.sort().join(";")); - host.setAttribute("data-castle-unassigned", String(unassigned)); - host.setAttribute("data-castle-releases", String((fdNow.releases ?? []).length)); + } catch (e) { + host.setAttribute("data-foundation-error", e instanceof Error ? e.message : String(e)); + } + // ---- the rings of the hive: a frame per ring directory, drawn flat ------- + // A ring used to be a stone plinth carrying a tower. In a hive it is a FRAME: + // the cells of spiral ring 7 wear their family's colour, and an epic's stage + // sets how brightly the frame burns. No geometry, only the comb's own rim. + try { + const fdNow2 = foundationRef.current; + host.setAttribute("data-castle-source", fdNow2 ? fdNow2.source : "none"); + if (fdNow2 && (fdNow2.rings?.length ?? 0) > 0) { + const rings = fdNow2.rings ?? []; + const epics = fdNow2.epics ?? []; + const places = castlePlaces(rings); + const stageOf = (ring: string): TowerStage => { + const order: TowerStage[] = ["plinth", "walls", "tower", "wizardTower"]; + let best: TowerStage = "plinth"; + for (const e of epics) if (ringOfEpic(e, rings).ring === ring) { const st = towerStage(e); if (order.indexOf(st) > order.indexOf(best)) best = st; } + return best; + }; + const BURN: Record = { plinth: 0.3, walls: 0.55, tower: 0.8, wizardTower: 1 }; + const fl: Vector3[][] = []; const fc: Color4[][] = []; const stages: string[] = []; + for (const pl of places) { + const c = cells[pl.plinth]; if (!c) continue; + const st = stageOf(pl.ring); stages.push(`${pl.ring}:${st}`); + const t = familyTint(ringFamily(pl.ring)); const b = BURN[st]; + const corners = hexCornersAt(c.x, c.y, HEX_R * 0.94, 0); + fl.push([...corners, corners[0]].map((q) => new Vector3(q.x, 3, q.y))); + const col = new Color4(t[0] * (0.4 + 0.6 * b), t[1] * (0.4 + 0.6 * b), t[2] * (0.4 + 0.6 * b), 0.45 + 0.55 * b); + fc.push(Array.from({ length: 7 }, () => col)); } - } catch (e) { - host.setAttribute("data-castle-error", e instanceof Error ? e.message : String(e)); + if (fl.length > 0) { + const frames = CreateLineSystem("frames", { lines: fl, colors: fc, useVertexAlpha: true }, scene); + frames.isPickable = false; frames.parent = layerNodes.castle; + glow.referenceMeshToUseItsOwnMaterial(frames); + } + const unassigned = epics.filter((e) => ringOfEpic(e, rings).ring === null).length; + castleLinks = { plinthOfRing: new Map(places.map((pl) => [pl.ring, pl.plinth])), ringOfCell: new Map(places.map((pl) => [pl.plinth, pl.ring])), cellsOfRing: new Map(), epics, rings }; + const cellsOfRing = castleLinks.cellsOfRing; + cards.forEach((cd, ci) => { if (!cd) return; const rn = ringOfModulePath(cd.title); if (rn && rings.includes(rn)) cellsOfRing.set(rn, [...(cellsOfRing.get(rn) ?? []), ci]); }); + host.setAttribute("data-castle-marks", String([...cellsOfRing.values()].reduce((n, l) => n + l.length, 0))); + host.setAttribute("data-castle-plates", String(places.length)); + host.setAttribute("data-castle-banners", String(Math.min((fdNow2.releases ?? []).length, 8))); + host.setAttribute("data-castle-rings", String(places.length)); + host.setAttribute("data-castle-stages", stages.sort().join(";")); + host.setAttribute("data-castle-unassigned", String(unassigned)); + host.setAttribute("data-castle-releases", String((fdNow2.releases ?? []).length)); + host.setAttribute("data-castle-keep", "1"); + } else { + host.removeAttribute("data-castle-stages"); host.removeAttribute("data-castle-rings"); + host.removeAttribute("data-castle-unassigned"); host.removeAttribute("data-castle-releases"); } - // the throne: the Queen's castle at the hub, on no layer, always visible - const keepT = modelInstances.get("keep"); - if (keepT) { keepT.mesh.parent = null; placeModel(keepT, [...Matrix.Translation(cells[home].x, 0, cells[home].y).toArray()], S_CELL * 1.05); host.setAttribute("data-castle-keep", "1"); } - })(); + } catch (e) { + host.setAttribute("data-castle-error", e instanceof Error ? e.message : String(e)); + } + // ---- the Queen at the centre: the mark itself ---------------------------- + // The user, 2026-09-06: "а королева в центре наш логотип! это и есть королева" + { + // the mark sits INSIDE the hub cell (the user, 2026-09-06): the Queen is a + // cell of the comb like every other fact, not a thing laid over it + const k = S_CELL * 0.62; + const markLines = EDGES.map(([ax, ay, bx, by]) => [ + new Vector3(cells[home].x + ax * k, 8, cells[home].y - ay * k), + new Vector3(cells[home].x + bx * k, 8, cells[home].y - by * k), + ]); + const mark = CreateLineSystem("queen-mark", { lines: markLines }, scene); + mark.color = new Color3(1, 0.86, 0.42); + mark.alpha = 0.95; + mark.isPickable = false; mark.parent = fieldRoot; + glow.referenceMeshToUseItsOwnMaterial(mark); + host.setAttribute("data-queen-mark", String(EDGES.length)); + } // ---- event glints: a ring that grows and fades on the issue's cell ---- interface Effect { index: number; tone: Tone; start: number; flip: boolean; flare?: string } @@ -658,7 +562,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit const pts: Vector3[] = []; for (let a = 0; a <= 16; a += 1) pts.push(new Vector3(Math.cos((a / 16) * Math.PI * 2), 0, Math.sin((a / 16) * Math.PI * 2))); const m = CreateLineSystem(`fx-${k}`, { lines: [pts], updatable: false }, scene); - m.isPickable = false; m.isVisible = false; + m.isPickable = false; m.isVisible = false; m.parent = fieldRoot; rings.push(m); } let lastEvents: HudEvent[] | null = null; @@ -685,7 +589,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit // ---- picking and hover --------------------------------------------------- const cellUnder = (x: number, y: number) => { - const p = groundAt(x, y); + const p = planeAt(x, y); return p ? hexIndexAt(p.x, p.z, cells.length) : -1; }; let hover = -1; @@ -763,11 +667,95 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit return Array.from({ length: 7 }, () => c); }); workingRing = CreateLineSystem("working", { lines, colors: colours, useVertexAlpha: true }, scene); - workingRing.isPickable = false; + workingRing.isPickable = false; workingRing.parent = fieldRoot; glow.referenceMeshToUseItsOwnMaterial(workingRing); } }; + // ---- the latest wire events as cards inside their cells ----------------- + // The comb is a display, not only a map (the user, 2026-09-06). The newest + // event per module becomes a texture card on that module's cell: issue, + // kind, module and age. Twelve is the honest limit because a hex cannot + // carry an unreadable poster; older work stays in the intel feed. + const EVENT_CARD_POOL = 12; + interface EventCard { mesh: Mesh; material: StandardMaterial; surface: DynamicTexture; index: number; issue: number | null; kind: string; ageMinute: number } + const eventCards: EventCard[] = Array.from({ length: EVENT_CARD_POOL }, (_, k) => { + const surface = new DynamicTexture(`event-card-${k}`, 256, scene, true); + surface.hasAlpha = true; + const material = new StandardMaterial(`event-card-material-${k}`, scene); + material.diffuseTexture = surface; + material.emissiveTexture = surface; + material.opacityTexture = surface; + material.emissiveColor = new Color3(1, 1, 1); + material.specularColor = Color3.Black(); + material.disableLighting = true; + const mesh = CreateGround(`event-card-${k}`, { width: S * 0.72, height: S * 0.72 }, scene); + mesh.material = material; mesh.isPickable = false; mesh.isVisible = false; mesh.parent = fieldRoot; + return { mesh, material, surface, index: -1, issue: null, kind: "", ageMinute: -1 }; + }); + const eventCardAge = (ageMs: number): string => { + if (ageMs < 60_000) return `${Math.max(0, Math.round(ageMs / 1000))}s`; + if (ageMs < 3_600_000) return `${Math.round(ageMs / 60_000)}m`; + if (ageMs < 86_400_000) return `${Math.round(ageMs / 3_600_000)}h`; + return `${Math.round(ageMs / 86_400_000)}d`; + }; + const drawEventCard = (card: EventCard, event: HudEvent, ageMs: number) => { + const ctx = card.surface.getContext() as CanvasRenderingContext2D; + const tone = TONE_HEX[eventTone(event.kind)]; + const path = cards[card.index]?.title ?? ""; + const shortPath = path.split("/").filter(Boolean).slice(-2).join("/") || "—"; + ctx.clearRect(0, 0, 256, 256); + ctx.fillStyle = "rgba(3, 9, 11, 0.88)"; + ctx.fillRect(10, 10, 236, 236); + ctx.strokeStyle = tone; + ctx.lineWidth = 6; + ctx.strokeRect(13, 13, 230, 230); + ctx.textAlign = "left"; + ctx.textBaseline = "middle"; + ctx.fillStyle = tone; + ctx.font = "700 36px ui-monospace, Menlo, monospace"; + ctx.fillText(`#${event.issue ?? "—"}`, 30, 58, 196); + ctx.fillStyle = "rgba(230, 240, 236, 0.88)"; + ctx.font = "600 29px ui-monospace, Menlo, monospace"; + ctx.fillText(event.kind.toUpperCase(), 30, 108, 196); + ctx.fillStyle = "rgba(230, 240, 236, 0.68)"; + ctx.fillText(shortPath, 30, 154, 196); + ctx.fillStyle = tone; + ctx.fillText(eventCardAge(ageMs), 30, 202, 196); + card.surface.update(); + }; + let eventCardSeen: readonly HudEvent[] | null = null; + let eventCardMinute = -1; + const refreshEventCards = (nowWallMs: number) => { + const list = eventsRef.current; + const minute = Math.floor(nowWallMs / 60_000); + if (list === eventCardSeen && minute === eventCardMinute) return; + eventCardSeen = list; + eventCardMinute = minute; + const newest = new Map(); + for (const event of list) { + const atMs = Date.parse(event.at); + if (!Number.isFinite(atMs)) continue; + const index = cellOfPath(event.title); + if (index < 0) continue; + const prior = newest.get(index); + if (!prior || atMs >= prior.atMs) newest.set(index, { ...event, atMs }); + } + const latest = [...newest.values()].sort((a, b) => b.atMs - a.atMs).slice(0, EVENT_CARD_POOL); + eventCards.forEach((card, k) => { + const event = latest[k]; + if (!event) { card.mesh.isVisible = false; card.index = -1; card.issue = null; card.kind = ""; card.ageMinute = -1; return; } + card.index = cellOfPath(event.title); + card.issue = event.issue; + card.kind = event.kind; + card.ageMinute = Math.floor(event.atMs / 60_000); + drawEventCard(card, event, Math.max(0, nowWallMs - event.atMs)); + card.mesh.position.set(cells[card.index].x, 4, cells[card.index].y); + card.mesh.isVisible = layersRef.current.foundation || layersRef.current.code; + }); + host.setAttribute("data-event-cards", String(latest.length)); + }; + // the roots (K-5): a picked closed issue that an epic lists draws lines from the epic's tower (the keep when unassigned) to every closed child on the field const drawRoots = (number: number | null) => { if (rootLines) { rootLines.dispose(); rootLines = null; } @@ -826,8 +814,12 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit engine.runRenderLoop(() => { const nowMs = performance.now(); const dt = Math.min(nowMs - lastMs, 32); lastMs = nowMs; + // the wall hangs in the air; the drift is small enough not to move a + // cell out from under the pointer while the player is reading it + fieldRoot.position.y = Math.sin(nowMs / 6400) * 7; // the working cells breathe so a still frame still says which are live refreshWorking(Date.now()); + refreshEventCards(Date.now()); if (workingRing) workingRing.alpha = 0.45 + 0.45 * Math.abs(Math.sin(nowMs / 620)); // the zoom glides instead of snapping, and it glides toward the cursor: // an orthographic frustum is a uniform scale about the target, so moving @@ -839,7 +831,7 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit if (anchor && f !== 1) { const k = 1 - 1 / f; camera.target.x += (anchor.x - camera.target.x) * k; - camera.target.z += (anchor.z - camera.target.z) * k; + camera.target.y += (-anchor.z - camera.target.y) * k; clampTarget(); } fit(); @@ -909,6 +901,13 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit // 2026-09-06). It used to light only a module, the hub or a honey cell, // so most of the comb answered nothing and the board felt dead. if (hover >= 0 && hover !== p && cells[hover]) placeDashed(hover, 1.4); else hovered.isVisible = false; + // the cell under the hand rises; the picked cell stays up + const wantLift = p !== null && cells[p] ? p : hover >= 0 && cells[hover] ? hover : -1; + if (wantLift !== liftIndex) { liftIndex = wantLift; if (liftIndex >= 0) lift.position.set(cells[liftIndex].x, liftY, cells[liftIndex].y); } + const goalY = liftIndex >= 0 ? 16 : 0; + liftY += (goalY - liftY) * (1 - Math.pow(2, -dt / 55)); + if (liftIndex >= 0) { lift.isVisible = true; lift.position.set(cells[liftIndex].x, liftY, cells[liftIndex].y); } + else if (liftY < 0.4) lift.isVisible = false; else lift.position.y = liftY; showHoverCard(layersRef.current.foundation && hover >= 0 ? hover : -1); scene.render(); frames += 1; @@ -921,7 +920,6 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit document.addEventListener("visibilitychange", onVisible); document.addEventListener("fullscreenchange", onVisible); return () => { - disposed = true; document.removeEventListener("visibilitychange", onVisible); document.removeEventListener("fullscreenchange", onVisible); canvas.removeEventListener("wheel", onWheel); @@ -935,9 +933,17 @@ export function QueenCombBabylon({ cards, workers, onPick, pickIndex = null, fit return (
    -
    +
    ); diff --git a/apps/website/src/components/queenHud.ts b/apps/website/src/components/queenHud.ts index bde9fd300a..4837dc61e5 100644 --- a/apps/website/src/components/queenHud.ts +++ b/apps/website/src/components/queenHud.ts @@ -613,6 +613,51 @@ export function ringTone(territory: Territory): string { return "#64DCFF"; } +// ---- THE HIVE'S COLOUR LAW (the user, 2026-09-06) ------------------------- +// The game's objective is to rewrite the repository from hand-written code to +// T27 specs while the bugs are fixed in parallel, so colour on the comb may +// mean exactly one of three things — never decoration: +// yellow the cell's issue is covered by T27 functionality; +// neon blue the cell is still waiting for its T27 spec; +// red the cell carries hand-written ("manual") code that is not +// spec-generated and is therefore the debt the game must clear. +// Honey is reserved for the pointer: the hand is looking for nectar. +export const HIVE_TONES = { + t27: "#FFD45A", + awaiting: "#64DCFF", + manual: "#FF4D5E", + hover: "#FFC24D", +} as const; +export type HiveCover = "t27" | "awaiting" | "manual"; + +/** Lower-case letters and digits only: the comparable form of a path or name. */ +export function hiveKey(value: string): string { + return value.toLowerCase().replace(/[^a-z0-9]+/g, ""); +} + +/** + * A cell's cover. `covered` holds hiveKey'd names the trinity spec corpus + * itself claims (spec module/name, plus the corpus' own directories). A module + * with no claim against it is manual code; no module at all is awaiting — the + * cell has no code fact yet, only the wire's issue. + */ +export function hiveCoverOf(modulePath: string | null, covered: ReadonlySet): HiveCover { + if (!modulePath) return "awaiting"; + const segments = modulePath.split("/").filter(Boolean); + const whole = hiveKey(segments.join("/")); + const base = hiveKey(segments[segments.length - 1] ?? ""); + if (covered.has(whole) || covered.has(base)) return "t27"; + if (/^rings\/t27\d*(-|$)/i.test(modulePath) || /^specs?(\/|$)/i.test(modulePath) || /^tests\/t27(\/|$)/i.test(modulePath)) return "t27"; + return "manual"; +} + +/** The cover's rgba tone for Babylon line colours. */ +export function hiveToneOf(cover: HiveCover): [number, number, number, number] { + const hex = HIVE_TONES[cover]; + const n = parseInt(hex.slice(1), 16); + return [((n >> 16) & 255) / 255, ((n >> 8) & 255) / 255, (n & 255) / 255, 1]; +} + /** * A code module of the repository the Queen supervises: the unit of place * on the field (the user, 2026-09-04: "modules in rings from the centre; diff --git a/apps/website/src/pages/Queen.css b/apps/website/src/pages/Queen.css index befd12abc4..5387d62a20 100644 --- a/apps/website/src/pages/Queen.css +++ b/apps/website/src/pages/Queen.css @@ -2996,6 +2996,43 @@ .queen27-hover-card b { display: block; color: #ffd45a; font-weight: 500; margin-bottom: 2px; } .queen27-hover-card span { display: block; color: rgba(230, 240, 236, 0.72); } +/* the colour law sits on the wall itself: each word carries its own swatch */ +.queen27-hive-law { + position: absolute; + z-index: 5; + top: 0.65rem; + left: 0.8rem; + display: flex; + flex-wrap: wrap; + gap: 0.35rem 0.7rem; + max-width: min(520px, calc(100% - 1.6rem)); + pointer-events: none; + color: rgba(230, 240, 236, 0.72); + font: 10px/1.7 ui-monospace, SFMono-Regular, Menlo, monospace; + letter-spacing: 0.07em; + text-transform: uppercase; +} + +.queen27-hive-law span { + display: inline-flex; + align-items: center; + gap: 0.3rem; +} + +.queen27-hive-law i { + width: 0.5rem; + height: 0.5rem; + flex: 0 0 auto; + border: 1px solid rgba(0, 0, 0, 0.55); + box-shadow: 0 0 8px currentColor; + background: currentColor; +} + +.queen27-hive-law [data-law="t27"] { color: #ffd45a; } +.queen27-hive-law [data-law="manual"] { color: #ff4d5e; } +.queen27-hive-law [data-law="awaiting"] { color: #64dcff; } +.queen27-hive-law [data-law="bees"] { color: #ffc24d; } + .queen27-comb-viewport canvas { display: block; width: 100%; diff --git a/apps/website/src/pages/Queen.tsx b/apps/website/src/pages/Queen.tsx index 11dc7dc268..aefaef8536 100644 --- a/apps/website/src/pages/Queen.tsx +++ b/apps/website/src/pages/Queen.tsx @@ -51,6 +51,7 @@ import { foundationCells, hexCellCount, CASTLE_RING, + hiveKey, } from "../components/queenHud"; import { verifyHardwareEnvelope, @@ -320,6 +321,10 @@ const COPY = { combNoBee: "no bee here", combPick: "Click a cell. A bee on it, or the Queen's own cell, shows a portrait; every cell is one card of the board.", combHint2: "drag to orbit · wheel to zoom · click a cell", + hiveLawT27: "T27 covered", + hiveLawManual: "manual code", + hiveLawAwaiting: "awaiting T27", + hiveLawBees: "bees", factoryFlow: "ISSUE → SPEC → BEE → REVIEW → EVIDENCE", factoryThroughput: "Live utilization", factoryQueueDensity: "queue density peak", @@ -577,6 +582,10 @@ const COPY = { combNoBee: "пчелы здесь нет", combPick: "Нажмите на ячейку. Пчела на ней или ячейка Королевы покажет портрет; каждая ячейка — одна карточка доски.", combHint2: "тяните — вращать · колесо — масштаб · клик — выбрать", + hiveLawT27: "покрыто T27", + hiveLawManual: "ручной код", + hiveLawAwaiting: "ждёт T27", + hiveLawBees: "пчёлы", factoryFlow: "ISSUE → SPEC → BEE → REVIEW → EVIDENCE", factoryThroughput: "Живая загрузка", factoryQueueDensity: "пик плотности очереди", @@ -836,6 +845,45 @@ function useQueenModules(): { data: { commit: string | null; generatedAt: string return { data, error }; } +interface T27ManifestSpec { + path?: string | null; + module?: string | null; + name?: string | null; + repo?: string | null; +} + +/** + * What T27 really claims in this repository. Only trinity rows from the + * manifest may turn a cell yellow; every other module stays manual or awaiting. + * A failed read is not zero coverage — it is unknown coverage, so the set stays + * null and the comb keeps its previous law rather than painting a false result. + */ +function useT27Coverage(): ReadonlySet | null { + const [coverage, setCoverage] = useState | null>(null); + useEffect(() => { + let active = true; + fetch("t27/manifest.json", { headers: { Accept: "application/json" }, cache: "default" }) + .then((response) => { + if (!response.ok) throw new Error(`HTTP ${response.status}`); + return response.json() as Promise<{ specs?: T27ManifestSpec[] }>; + }) + .then((manifest) => { + if (!active || !Array.isArray(manifest.specs)) return; + const next = new Set(["specs", "tests/t27", "rings/t27"]); + for (const spec of manifest.specs) { + if (spec.repo !== "trinity") continue; + for (const value of [spec.module, spec.name]) { + if (typeof value === "string" && value.length > 0) next.add(hiveKey(value)); + } + } + setCoverage(next); + }) + .catch(() => {}); + return () => { active = false; }; + }, []); + return coverage; +} + /** The loop's GitHub snapshot: closed issues (the foundation), epics (the castle), rings, releases. */ interface FoundationSnapshot { generatedAt: string; @@ -1869,6 +1917,7 @@ export default function Queen() { // dormant), so territories and the buildings' kinds follow. const modulesState = useQueenModules(); const foundationState = useQueenFoundation(); + const t27Coverage = useT27Coverage(); const closedCount = foundationState.data?.closedIssues.length ?? 0; const rawModules = modulesState.data?.modules ?? EMPTY_MODULES; // the board knows the issues; every row gets its open issues from the cards @@ -2707,6 +2756,8 @@ export default function Queen() { pickIndex={pickIndex} fitInset={contextOpen ? (isPhone ? 0.56 : 0.46) : 0} events={events} + t27Coverage={t27Coverage} + law={{ t27: c.hiveLawT27, manual: c.hiveLawManual, awaiting: c.hiveLawAwaiting, bees: c.hiveLawBees }} /> ) : ( diff --git a/docs/QUEEN_HIVE_GAMEPLAY.md b/docs/QUEEN_HIVE_GAMEPLAY.md new file mode 100644 index 0000000000..83d9d9a768 --- /dev/null +++ b/docs/QUEEN_HIVE_GAMEPLAY.md @@ -0,0 +1,91 @@ +# Queen Hive gameplay + +Queen Hive is not an ornament around the repository. It is the operational game +whose win condition is the repository's migration: replace hand-written code +with T27 specifications while fixing real bugs in parallel. + +## Campaign objective and priority + +The first campaign target is **`trios`**. Its modules are the first ring of +manual code to claim, specify, generate, test and review. Other repositories may +join only after `trios` has an auditable spec-to-evidence trail. No visual state +may claim progress without a wire event, merged diff, test result or dated +snapshot behind it. + +The full cycle is: + +1. **Issue** — a real bug, missing behaviour or manual-code boundary. +2. **Spec** — write the `.t27` source of truth and its acceptance criteria. +3. **Bee** — an isolated worker makes the smallest generated change. +4. **Review** — Queen examines the diff, tests and invariants. +5. **Evidence** — accepted work records the proof and seals the corresponding + cell. + +A cell becomes capped only when its issue is closed. A pretty yellow rim never +substitutes for an accepted spec and evidence. + +## The field + +The comb is a vertical wall floating directly in front of the player. It is not +a horizontal board. The Queen is the Trinity logo drawn inside the hub cell; she +is not a 3D character or a separate object. Every module, issue and event is a +honeycomb cell. + +The pointer is part of the game language. Hover or tap raises the cell and draws +the honey-colored nectar ring. A click selects it and opens its context. Pan, +wheel zoom and FIT VIEW use the same wall-plane geometry as picking, so the cell +under the hand remains the cell the game reads. + +## Colour law + +There are exactly three claim colors: + +- **Yellow `#FFD45A`** — functionality is covered by a T27 specification. +- **Neon blue `#64DCFF`** — no code module is claimed yet; the cell awaits its + T27 boundary. +- **Red `#FF4D5E`** — hand-written/manual code that T27 does not yet generate. + +Honey `#FFC24D` is reserved for pointer hover. It is not a progress state. + +The manifest is the source for yellow: only `repo: "trinity"` spec claims may +turn a module yellow. A missing, stale or unparseable manifest never becomes +zero coverage; it remains unknown coverage. + +## Hive display + +The latest wire event per module becomes a compact card on its cell, bounded by +the hexagon: issue number, event kind, module path and age. The display is +capped at twelve newest cards so the wall remains readable. Older facts remain +available through the feed and the repository record. + +Event cards use the existing hive architecture: a dark cell face, one event-tone +border and monospaced slots. KIE.AI may generate optional card/frame textures +through `apps/website/scripts/queen-kie-assets.mjs`, but generated art may never +add a state or number that the wire did not send. The current KIE key returns +401 “Organization access is disabled”; no generated asset is shipped or claimed. + +## Progression + +Each round Queen prioritizes: + +1. an open `trios` bug whose module is red, so repair and migration proceed + together; +2. a manual module with the highest real blast radius; +3. a review that can unblock a capped cell; +4. only then work outside `trios`. + +Bees are real worker slots. They fly toward the module named by their current +event, never toward decorative targets. An event without a resolvable module +lights nothing rather than guessing. + +## Winning and losing + +A module is won when its behaviour has a `.t27` spec, generated implementation, +passing tests, Queen acceptance and no orphaned hand-written implementation +left behind. A ring is won when every module it owns is won and its epics are +closed with evidence. The first campaign is won when every `trios` module +satisfies that rule. + +The hive loses honesty, not a match: if a number, color, cap or bee cannot be +traced to a source, it must be removed or shown as unknown. That honesty rule +overrides every visual choice.