[{"data":1,"prerenderedAt":85},["ShallowReactive",2],{"game-cube-composer":3,"article-cube-composer":42},{"slug":4,"title":5,"description":6,"category":7,"subcategory":8,"tags":9,"thumbnail":14,"thumbnailAlt":15,"iframeUrl":16,"iframeWidth":17,"iframeHeight":18,"embedType":19,"developer":20,"developerUrl":21,"releaseDate":22,"lastUpdated":22,"popular":23,"difficulty":24,"controls":25,"features":32,"relatedGames":39},"cube-composer","Cube Composer","Drag pure-function tiles such as map, filter, reverse, sort and color-mappers into a live pipeline that reshapes an isometric cube wall to match the target across six chapters.","Puzzle","Logic",[7,8,10,11,12,13],"Function Composition","Programming","Open Source","Educational","\u002Fassets\u002Fimages\u002Fgames\u002Fcube-composer.svg","Cube Composer game thumbnail","\u002Fselfhosted\u002Fcube-composer\u002Findex.html","100%","600","selfhosted","sharkdp","https:\u002F\u002Fgithub.com\u002Fsharkdp\u002Fcube-composer","2026-07-09",false,"Medium",{"keyboard":26,"mouse":30,"touch":31},[27,28,29],"R — reset the program","N or Right arrow — next level","P or Left arrow — previous level","Drag function tiles between the Available and Program columns, or click a tile to toggle it in or out; click Reset or Next-level to advance.","Not supported (the interaction depends on mouse-driven drag-and-drop).",[33,34,35,36,37,38],"Isometric 3D cube rendering with depth-sorted faces","Six themed chapters (Easy, Medium, Hard) each with a distinct transformer set","Live pipeline that re-runs whenever tiles are added, removed, or reordered","Transformers include map, filter, reverse, sort, and color-mappers (e.g. map Yellow to Red)","Per-level progress persisted to localStorage","Open source under the MIT license, written in PureScript by David Peter (sharkdp)",[40,41],"2048","sudoku",{"id":43,"title":5,"body":44,"description":6,"extension":77,"faq":78,"lastReviewed":22,"meta":79,"navigation":80,"path":81,"seo":82,"slug":4,"stem":83,"__hash__":84},"games\u002Fgames\u002Fcube-composer.md",{"type":45,"value":46,"toc":70},"minimark",[47,52,56,60,63,67],[48,49,51],"h2",{"id":50},"overview","Overview",[53,54,55],"p",{},"Bolting pure functions into a pipeline until an isometric wall of colored cubes snaps into the target shape is the entire exercise. cube-composer, written in PureScript by David Peter — the developer behind the bat, fd, and hexyl command-line tools — and released under an MIT license, treats every puzzle as a problem in mathematical function composition. The left panel offers transformer tiles such as map, filter, reverse, sort, and color-mappers that convert every Yellow cube to Red, and you assemble a subset of them, in order, into the program column on the right. The pipeline runs live on an initial two-dimensional grid of cubes rendered isometrically on a canvas, depth-sorted so the wall reads as a solid object, and the goal is to choose and order functions so the resulting wall exactly matches each level's target. Six themed chapters — Easy, Medium, and Hard — each ship a distinct transformer set, teaching the primitives before demanding longer interleaved compositions. It appeals most to players who think in pipelines: programmers, spreadsheet builders, and fans of logic puzzles whose rules are functional and whose feedback is instantaneous.",[48,57,59],{"id":58},"how-to-play","How to Play",[53,61,62],{},"Build a program by dragging function tiles from the Available column on the left into the Program column on the right, or simply click a tile to toggle it in and out — both the drag-and-drop path and the click path produce the same effect, and the pipeline re-runs the moment the column changes. Press R to reset the program, N or the Right arrow to jump to the next level, and P or the Left arrow to step back; the arrow keys are ignored while Ctrl is held, so you can ctrl-click without losing your place. When the transformed wall exactly matches the target, a solved marker appears and you advance. Mouse input drives everything — the only on-screen buttons are Reset and Next-level — and touch input is not supported, because the interaction depends on drag-and-drop.",[48,64,66],{"id":65},"tips-strategy","Tips & Strategy",[53,68,69],{},"Read the pipeline rightward from the first function, because each transformer feeds the next and order is as load-bearing as tile choice — reversing before a color-map yields a different wall than reversing after, and a sort dropped between two filters reorders cubes you still needed grouped. Before adding anything, count the target: if it holds the same cubes as the start, you need only reordering functions such as reverse and sort, and any filter or map will push the counts apart. Apply color-map tiles last, once the spatial arrangement is correct, because remapping colors on an unsorted wall hides the structure you are still building. When a chapter introduces a new transformer, solve its first level with that single tile to confirm exactly what it does, then chain — the live preview makes the probe essentially free. Progress persists to localStorage per level, so you can leave a hard chapter and resume without replaying the early ones.",{"title":71,"searchDepth":72,"depth":72,"links":73},"",2,[74,75,76],{"id":50,"depth":72,"text":51},{"id":58,"depth":72,"text":59},{"id":65,"depth":72,"text":66},"md",null,{},true,"\u002Fgames\u002Fcube-composer",{"description":6},"games\u002Fcube-composer","TnhUGkF_LsUlCk3iGNBaHyxDSs20UxMTcs0lgEsemPg",1784023401608]