%22%22%22Live%20factory%20tuning%20playground.%0A%0APick%20a%20factory%2C%20scrub%20through%20variants%2C%20see%20live%20PNG%20%2B%20scores.%0AThe%20%22edit%20factory%20code%20%E2%86%92%20regen%20%E2%86%92%20score%22%20loop%20in%20one%20screen.%0A%0ARUN%20THIS%20WITH%3A%20%20marimo%20run%2001_tuning_playground.py%0A(NOT%20export%20%E2%80%94%20interactive%20widgets%20need%20a%20kernel)%0A%22%22%22%0A%0Aimport%20marimo%0A%0A__generated_with%20%3D%20%220.22.5%22%0Aapp%20%3D%20marimo.App(width%3D%22full%22%2C%20app_title%3D%22Factory%20Tuning%20Playground%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20sys%0A%20%20%20%20from%20pathlib%20import%20Path%0A%20%20%20%20sys.path.insert(0%2C%20str(Path(__file__).parent))%0A%20%20%20%20import%20_lib%20as%20lib%0A%0A%20%20%20%20return%20lib%2C%20mo%0A%0A%0A%40app.cell%0Adef%20_(lib%2C%20mo)%3A%0A%20%20%20%20factory%20%3D%20mo.ui.dropdown(%0A%20%20%20%20%20%20%20%20options%3Dlib.FACTORIES%2C%0A%20%20%20%20%20%20%20%20value%3D%22moire%22%2C%0A%20%20%20%20%20%20%20%20label%3D%22Factory%22%2C%0A%20%20%20%20)%0A%20%20%20%20variant%20%3D%20mo.ui.slider(0%2C%20999%2C%20value%3D0%2C%20label%3D%22Variant%22%2C%20show_value%3DTrue%2C%20full_width%3DTrue)%0A%20%20%20%20regen_btn%20%3D%20mo.ui.run_button(label%3D%22Regenerate%22)%0A%20%20%20%20return%20factory%2C%20regen_btn%2C%20variant%0A%0A%0A%40app.cell%0Adef%20_(factory%2C%20mo%2C%20regen_btn%2C%20variant)%3A%0A%20%20%20%20%23%20Compact%20control%20bar%20at%20the%20very%20top%0A%20%20%20%20mo.hstack(%0A%20%20%20%20%20%20%20%20%5Bfactory%2C%20variant%2C%20regen_btn%5D%2C%0A%20%20%20%20%20%20%20%20justify%3D%22start%22%2C%0A%20%20%20%20%20%20%20%20gap%3D2%2C%0A%20%20%20%20%20%20%20%20align%3D%22center%22%2C%0A%20%20%20%20)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(factory%2C%20lib%2C%20regen_btn%2C%20variant)%3A%0A%20%20%20%20%23%20Trigger%20regeneration%20on%20button%20click%0A%20%20%20%20if%20regen_btn.value%3A%0A%20%20%20%20%20%20%20%20lib.generate_variant(factory.value%2C%20variant.value)%0A%20%20%20%20piece_id%20%3D%20f%22%7Bfactory.value%7D-%7Bvariant.value%3A04d%7D%22%0A%20%20%20%20png%20%3D%20lib.piece_path(piece_id%2C%20%22png%22)%0A%20%20%20%20return%20piece_id%2C%20png%0A%0A%0A%40app.cell%0Adef%20_(lib%2C%20piece_id%2C%20png%2C%20regen_btn)%3A%0A%20%20%20%20%23%20Score%20the%20piece%0A%20%20%20%20if%20regen_btn.value%20or%20png.exists()%3A%0A%20%20%20%20%20%20%20%20scores%20%3D%20lib.score_piece(piece_id%2C%20no_llm%3DTrue)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20scores%20%3D%20None%0A%20%20%20%20return%20(scores%2C)%0A%0A%0A%40app.cell%0Adef%20_(lib%2C%20mo%2C%20piece_id%2C%20png)%3A%0A%20%20%20%20%23%20BIG%20image%20%E2%80%94%20front%20and%20center%2C%20takes%20most%20of%20the%20screen%0A%20%20%20%20if%20not%20png.exists()%3A%0A%20%20%20%20%20%20%20%20big_img%20%3D%20mo.md(f%22%23%23%23%20%E2%9A%A0%EF%B8%8F%20%60%7Bpiece_id%7D%60%20not%20generated%20yet.%20Click%20%E2%86%BB%20Regenerate.%22)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20big_img%20%3D%20mo.Html(%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22display%3Aflex%3B%20justify-content%3Acenter%3B%20align-items%3Acenter%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'background%3A%230a0a0a%3B%20padding%3A24px%3B%20border-radius%3A12px%3B%20border%3A1px%20solid%20%232a2a2a%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cimg%20src%3D%22%7Blib.png_data_uri(png)%7D%22%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'style%3D%22max-width%3A100%25%3B%20max-height%3A78vh%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'box-shadow%3A0%2012px%2040px%20rgba(0%2C0%2C0%2C0.6)%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20big_img%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(mo%2C%20piece_id%2C%20scores)%3A%0A%20%20%20%20%23%20Score%20strip%20%E2%80%94%20compact%2C%20below%20the%20image%0A%20%20%20%20if%20not%20scores%3A%0A%20%20%20%20%20%20%20%20score_strip%20%3D%20mo.md(%22%22)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20composite%20%3D%20scores.get(%22composite%22%2C%200)%0A%20%20%20%20%20%20%20%20composite_color%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%2322c55e%22%20if%20composite%20%3E%3D%2080%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%2384cc16%22%20if%20composite%20%3E%3D%2070%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%23eab308%22%20if%20composite%20%3E%3D%2060%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%22%23f97316%22%20if%20composite%20%3E%3D%2050%20else%20%22%23dc2626%22%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20def%20metric_pill(label%2C%20value%2C%20color%3D%22%23888%22)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20isinstance(value%2C%20float)%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v%20%3D%20f%22%7Bvalue%3A.3f%7D%22%20if%20label%20!%3D%20%22composite%22%20else%20f%22%7Bvalue%3A.1f%7D%22%0A%20%20%20%20%20%20%20%20%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v%20%3D%20str(value)%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22background%3A%23141414%3B%20border%3A1px%20solid%20%232a2a2a%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'padding%3A10px%2016px%3B%20border-radius%3A8px%3B%20min-width%3A90px%3B%20text-align%3Acenter%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22font-size%3A10px%3B%20color%3A%23666%3B%20text-transform%3Auppercase%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'letter-spacing%3A0.05em%3B%20font-family%3Amonospace%3B%22%3E%7Blabel%7D%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22font-size%3A18px%3B%20color%3A%7Bcolor%7D%3B%20font-family%3Amonospace%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'font-weight%3A600%3B%20margin-top%3A2px%3B%22%3E%7Bv%7D%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f'%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20pills%20%3D%20(%0A%20%20%20%20%20%20%20%20%20%20%20%20metric_pill(%22composite%22%2C%20scores.get(%22composite%22%2C%200)%2C%20composite_color)%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22ink%22%2C%20scores.get(%22ink_coverage%22%2C%200))%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22line%20cmpx%22%2C%20scores.get(%22line_complexity%22%2C%200))%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22composition%22%2C%20scores.get(%22composition%22%2C%200))%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22entropy%22%2C%20scores.get(%22entropy%22%2C%200))%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22uniqueness%22%2C%20scores.get(%22uniqueness%22%2C%200))%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20metric_pill(%22feasibility%22%2C%20scores.get(%22feasibility%22%2C%200))%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20%20%20%20%20score_strip%20%3D%20mo.Html(%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22display%3Aflex%3B%20gap%3A8px%3B%20flex-wrap%3Awrap%3B%20justify-content%3Acenter%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'margin-top%3A16px%3B%20font-family%3Asystem-ui%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22background%3A%230a0a0a%3B%20padding%3A10px%2016px%3B%20border-radius%3A8px%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'border%3A1px%20solid%20%232a2a2a%3B%20display%3Aflex%3B%20align-items%3Acenter%3B%20min-width%3A160px%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cspan%20style%3D%22color%3A%23888%3B%20font-family%3Amonospace%3B%20font-size%3A13px%3B%22%3E%7Bpiece_id%7D%3C%2Fspan%3E%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20%2B%20pills%20%2B%20'%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20score_strip%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(factory%2C%20lib%2C%20mo)%3A%0A%20%20%20%20%23%20Factory%20baseline%20footer%20(small)%0A%20%20%20%20summary%20%3D%20lib.factory_summary(factory.value)%0A%20%20%20%20if%20summary%5B%22n%22%5D%20%3D%3D%200%3A%0A%20%20%20%20%20%20%20%20baseline%20%3D%20mo.md(f%22_No%20data%20for%20%7Bfactory.value%7D%20yet_%22)%0A%20%20%20%20else%3A%0A%20%20%20%20%20%20%20%20baseline%20%3D%20mo.Html(%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cdiv%20style%3D%22margin-top%3A24px%3B%20padding%3A12px%2020px%3B%20background%3A%230a0a0a%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'border%3A1px%20solid%20%232a2a2a%3B%20border-radius%3A8px%3B%20font-family%3Amonospace%3B%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'font-size%3A12px%3B%20color%3A%23888%3B%20display%3Aflex%3B%20gap%3A24px%3B%20justify-content%3Acenter%3B%22%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3Cspan%3E%7Bfactory.value%7D%20baseline%20%C2%B7%20n%3D%7Bsummary%5B%22n%22%5D%7D%20%C2%B7%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'avg%3D%7Bsummary%5B%22avg%22%5D%7D%20%C2%B7%20best%3D%7Bsummary%5B%22best%22%5D%7D%20%C2%B7%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'80%2B%3D%7Bsummary%5B%22over_80%22%5D%7D%20%C2%B7%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'weakest%3D%7Bsummary%5B%22weakest%22%5D%7D(%7Bsummary%5B%22weakest_val%22%5D%3A.3f%7D)%20'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%C2%B7%20ceiling%20%2B%7Blib.ceiling_potential(summary)%3A.1f%7D%3C%2Fspan%3E'%0A%20%20%20%20%20%20%20%20%20%20%20%20f'%3C%2Fdiv%3E'%0A%20%20%20%20%20%20%20%20)%0A%20%20%20%20baseline%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
37d144d53bd13e8a3c766b1a2cd7f656