ó
    8ÕÛjÑ  ã            	       óÌ  • S r SSKrSSKrSSKrSSKrSSKrSSKr\R                  R                  \R                  R                  \
5      5      r\R                  R                  S\R                  R                  \R                  R                  \5      S5      5        \R                  R                  SS5        SSKrSSSS	S
.rS r\" \5      4S jr\S:X  a‹  \R.                  SS  Hw  r\" \5      r\c  \" \S5        M  \" \S-   SR                  S \R7                  5        5       5      -   5        \R7                  5        H  u  rr\" S\S S\S    35        M     My     gg)ad  judges.py -- a panel of judges that look at a finished build and nothing else (Ivy, Oct 23 2026, after the outside reviews: "Could
have three judges. One cares about complexity, another about elegance, another about surprising use of lego etc.").

Each judge sees ONLY the build's picture: no title, no notebook, no player -- so nothing Pin wrote can talk a judge into a score
(the reviewers' guard). Each returns 0-10 and one line why. Kept separate, never summed into one number: a build can win one voice.

    python3 judges.py RUN [RUN ...]      -> scores to stdout and runs/RUN/judges.json
Written by Iris.é    NÚ	favoritesÚHAIKUzclaude-haiku-4-5-20251001zÔYou judge COMPLEXITY in Lego builds: how intricate and ambitious the construction is -- many parts working together, layers, depth front to back, sub-assemblies, structure you have to look at twice to understand.zÁYou judge ELEGANCE in Lego builds: how much it achieves with how little -- economy, clean lines, every piece earning its place, a confident idea said simply. Lots of parts is not a virtue here.zÔYou judge NPU -- 'nice part usage', as Lego fans say: parts used as something they were never made for (a slope as a beak, a wheel as an eye), clever or unexpected techniques, connections a builder would grin at.z¢You judge FUN in Lego builds: would a stranger looking at this smile, laugh, or say 'oh, that's fun!'? Character, wit, charm, a sense that something is happening.)Ú
complexityÚeleganceÚnpuÚfunc                 óè  • [         R                  R                  [        SU 5      n[         R                  R	                  [         R                  R                  US5      5      (       a   [         R                  R                  US5      $ [        [         R                  " U5       VVs1 s H<  n[        R                  " SU5      o3(       d  M"  [        UR                  S5      5      iM>     snn5      nU(       d  gUS   n[         R                  R                  USUS S	35      n[         R                  R	                  U5      (       a  U$ [         R                  R                  USUS S
35      $ s  snnf )zåthe LAST frame of the build (its multi-view picture if that frame has one). Oct 23 2026: preferring any *_views picture first
showed the judges the scarecrow's turn-0 base, because that run only made a views picture for frame 00.Úrunszframe_end.pngzframe_(\d\d)(_views)?\.png$é   NéÿÿÿÿÚframe_Ú02dz
_views.pngz.png)ÚosÚpathÚjoinÚHEREÚexistsÚsortedÚlistdirÚreÚmatchÚintÚgroup)ÚrunÚdÚfÚmÚnumsÚnÚvs          Ú,/home/ivy/projects/brick_reef/reef/judges.pyÚpicturer"      sý   € ô 	�‰�‰”T˜6 3Ó'€AÜ	‡w�w‡~�~”b—g‘g—l‘l 1 oÓ6×7Ñ7ÄÇÁÇÁÈQÐP_Ó@`Ð9`Ü¬B¯JªJ°q¬MÔvªM qÄBÇHÂHÐMkÐmnÓDo¸aÓtu“?”3�q—w‘w˜q“z–?©MÒvÓw€DÞ˜ØˆR‰€A”b—g‘g—l‘l 1¨¨q°¨g°ZÐ&@ÓA�!Ü—‘—‘˜q×!Ñ!ˆ1ÐL¤r§w¡w§|¡|°A¸ÀÀ#¸wÀdÐ7KÓ'LÐLùó ws   Â&!E.
ÃE.
c                 óÔ  • [        U 5      nU(       d  g 0 nU H¸  n[        U   S-   nS H£  n[        R                  " U5         [        R
                  " XR/S5      u  px[        R                  " SU[        R                  5      n	[        R                  " U	R                  S5      5      n
[        U
S   5      U
R                  SS5      S	.X4'     M¶     Mº     [        R                   " S["        R$                  R'                  U5      0UE[)        ["        R$                  R+                  [,        SU S5      S5      SS9  U$ ! [         a"  nS S
[        U5      S S  3S	.X4'    S nAGM9  S nAff = f)Na    Look ONLY at this picture of a Lego build (it may show several views of the same build). You are told nothing else about it. Be a real judge: most builds are middling, use the whole 0-10 range. Answer ONLY with JSON: {"score": <0-10>, "why": "<one sentence about what you actually see>"})r   é   é-   é–   z\{.*\}r   ÚscoreÚwhyÚ )r'   r(   zfailed: é<   r"   r
   zjudges.jsonÚwr   )Úindent)r"   ÚJUDGESÚtimeÚsleepÚHÚaskr   ÚsearchÚSÚjsonÚloadsr   ÚfloatÚgetÚ	ExceptionÚstrÚdumpr   r   ÚbasenameÚopenr   r   )r   ÚwhoÚpngÚoutÚnameÚqÚwaitÚtÚ_r   ÚaÚes               r!   ÚjudgerG   $   sZ  € Ü
�#‹,€CÞ�tØ
€CÛˆÜ�D‰\ð Vñ Vˆó  ˆDÜ�JŠJ�tÔð`Ü—u’u˜Q  sÓ+‘�Ü—I’I˜i¨¬B¯D©DÓ1�´t·z²zÀ!Ç'Á'È!Ã*Ó7M°1ÔejÐklÐmtÑkuÓevð  @A÷  @Eñ  @Eð  FKð  MOó  @Pñ  \QÈsÉyÚó  ñ	 ô 	‡I‚Iˆyœ"Ÿ'™'×*Ñ*¨3Ó/Ð7°3Ð7¼¼b¿g¹g¿l¹lÌ4ÐQWÐY\Ð^kÓ>lÐnqÓ9rÐ{|Ò}Ø€Jøô Ó_¸ÈÔQTÐUVÓQWÐX[ÐY[ÐQ\ÐP]ÐF^Ñ/_ 3§9 9ûÐ_ús   ÁBD;Ä;
E'ÅE"Å"E'Ú__main__r   z
no picturez:  z  c              #   ó:   #   • U  H  u  pU S US    3v •  M     g7f)Ú r'   N© )Ú.0Úkr    s      r!   Ú	<genexpr>rN   :   s!   é € Ð%PÂi¹d¸a¨¨¨1¨Q¨w©Z¨LÕ&9Âiùs   ‚z    Ú10srJ   r(   )Ú__doc__r   Úsysr4   r   Úglobr.   r   ÚdirnameÚabspathÚ__file__r   Úinsertr   ÚenvironÚ
setdefaultÚhaikur0   r-   r"   ÚtuplerG   Ú__name__Úargvr   ÚrÚprintÚitemsrM   r    rK   ó    r!   Ú<module>ra      s:  ðñ÷ %× $× $Ø	‡w�w‡��r—w‘w—‘ xÓ0Ó1€Ø ‡�‡���2—7‘7—<‘< §¡§¡°Ó 5°{ÓCÔ DØ ‡
�
× Ñ �gÐ:Ô ;Û ð~ðiðyðPñ	
€òMñ ˜“=ô ð$ ˆzÓØ�x‰x˜˜‹|ˆÙ�#‹JˆØ‰9‘e˜C Ô.±Ùˆc�E‰k˜DŸI™IÑ%PÀaÇgÁgÄiÓ%PÓPÑPÔQØ—G‘G–I‰DˆAˆq™u t¨A¨c¨7°!°A°e±H°:Ð%>Ö?“Iò	 ð r`   