[{"data":1,"prerenderedAt":86},["ShallowReactive",2],{"game-cube-composer":3,"article-cube-composer":43},{"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,42],"2048","sudoku","hextris",{"id":44,"title":5,"body":45,"description":6,"extension":78,"faq":79,"lastReviewed":22,"meta":80,"navigation":81,"path":82,"seo":83,"slug":4,"stem":84,"__hash__":85},"games\u002Fgames\u002Fcube-composer.md",{"type":46,"value":47,"toc":71},"minimark",[48,53,57,61,64,68],[49,50,52],"h2",{"id":51},"overview","Overview",[54,55,56],"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.",[49,58,60],{"id":59},"how-to-play","How to Play",[54,62,63],{},"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.",[49,65,67],{"id":66},"tips-strategy","Tips & Strategy",[54,69,70],{},"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":72,"searchDepth":73,"depth":73,"links":74},"",2,[75,76,77],{"id":51,"depth":73,"text":52},{"id":59,"depth":73,"text":60},{"id":66,"depth":73,"text":67},"md",null,{},true,"\u002Fgames\u002Fcube-composer",{"description":6},"games\u002Fcube-composer","TnhUGkF_LsUlCk3iGNBaHyxDSs20UxMTcs0lgEsemPg",1783575111742]