Nodes/genereticore/ꘅ Decision Arcade
ComfyUI Node

ꘅ Decision Arcade

Blocks & Beats is a decision-driven Tetris demo, not a node you queue

By languel·Created 12 days ago·Updated 9 days ago· 0
ꘅ Decision Arcade

      What it is

      ꘅ Decision Arcade is a launcher. It has no inputs, no outputs, and no inference. It draws a ▦ button that opens Blocks & Beats - a Tetris-flavoured simulation whose piece placements and pattern choices come from a local decision model - in a new browser tab.

      It exists because the pack's author wanted a demo where a decision had visible consequences rather than a JSON dump. A model looks at the board, picks among authored options, and a piece lands somewhere. The audio side is a small step sequencer: the browser's Web Audio scheduler plays authored oscillator patterns, and the decision model picks which pattern label comes next. No audio files, no samples.

      Now the honest part. If you came here looking for a node that makes images and saw "arcade," this is not that. Queue the graph and nothing happens - not an error, just a hint string in the UI payload: Open Blocks & Beats with the arcade button. Start game and audio separately. Comfy's Run deliberately does not start the game, and it isn't a stream of game telemetry either. Everything is a manual gesture in the page.

      How you actually launch it

      Clone and restart as usual:

      cd ComfyUI/custom_nodes
      git clone https://github.com/languel/genereticore
      

      Or search GeneretiCore in ComfyUI Manager. Keep the Comfy server running - the page talks to the pack's loopback-only API for decisions, so it's a real integration, not a static toy.

      Then press ▦ on the node. You get the standalone page, and you choose the decision source yourself: the d1 specialist model, or an explicit authored heuristic. Pick one, press Start game. Press Start audio separately - that's a second gesture on purpose, because nothing in this pack plays sound or starts a camera without you asking. Pause cancels pending decisions, Stop audio is its own control, and Reset returns to seed 7.

      Two things you need in place. d1 has to be downloaded - press ↓ on ꘅ Local Decision if you haven't, since the arcade won't fetch it for you. And if you want the game embedded in the canvas instead of a separate tab, that's a different node: the sample 13 - Blocks and Beats - embedded webview uses Genereti's ꘇ webview (GeneretiDocument) pointing at /extensions/genereti-core/blocks-beats.html?embed=1. That path needs the separate Genereti pack too. The sample saves a 700px surface via the generetiWebviewHeight workflow property; the query string just swaps in a compact layout.

      What it demonstrates, and what it doesn't

      The useful takeaway isn't the game. It's the latency data. The author's local run on Apple silicon reports a warm d1 decision at roughly 23 ms, end to end, while a canvas was running - twenty placements completed with music choices staged for upcoming bars. That's the number that matters if you're thinking about decision models as controls instead of as content generators: at ~23 ms, a decision can sit in a live feedback loop, which is the entire premise of this pack.

      What the same doc explicitly refuses to claim: this verifies browser scheduling and controls, not audio quality, not statistical latency, and not how it behaves in browsers or macOS versions other than the one machine it was tested on.

      Where people get burned

      Expecting Comfy Run to do something. It doesn't. The node's open_demo returns a UI string and stops. There's no error to chase, which is somehow worse - it looks like a silently broken output node. Read the hint text on the node face.

      Opening several output windows. Each window creates a separate page instance, not a mirror of a running game. Start a couple and you'll be comparing two unrelated simulations and wondering why the scores disagree. The docs ask you not to.

      Missing d1 and no error you'd expect. If you picked d1 without the ~769 MB download in place, the page has nothing to decide with. Grab the model from ꘅ Local Decision's toolbar first, or switch to the authored heuristic and just play the thing.

      Treat it as a reference implementation. If you're building a live decision loop, the arcade page's source - the request-per-frame, one-decision-at-a-time pattern - is a more honest template for your own work than its screenshots suggest.

      CategoryGenereti / Inference

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs