Top all-time · #3043
BorisTheBrave.Com
Personal blog · boristhebrave.com · on HN as BorisTheBraveprogramminggames
BorisTheBrave.Com is a personal blog at boristhebrave.com about programming and games. Since 2018, 25 different Hacker News readers have linked it 66 times, most often “Constraint Solving and Wave Function Collapse Explained”. It is still writing: the last post was on 2026-10-18, and you can follow it by feed.
Too few sampled comments (9) to say how often HN recommends it.?
Why HN links it
Game-development and procedural generation writeups, including explanations of wave function collapse, dual contouring, dungeon generation and graph rewriting. HN readers cite them as explanations of these algorithms.
Summarised by Claude from a sample of 9 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.
Most-linked posts?
- Constraint Solving and Wave Function Collapse Explained3 people · 3 mentions · first linked 2020-04-13
- Model Synthesis and Modifying in Blocks3 people · 3 mentions · first linked 2021-10-28
- Dungeon Generation in Diablo 13 people · 3 mentions · first linked 2019-07-15
- Dungeon Generation in Enter The Gungeon2 people · 2 mentions · first linked 2019-07-30
- Dual Contouring Tutorial (2018)2 people · 2 mentions · first linked 2020-12-28
- Good Software Doesn't Double Check2 people · 2 mentions · first linked 2026-04-17
- Accelerated Game of Life with CUDA / Triton2 people · 2 mentions · first linked 2025-09-11
- Random Paths via Chiseling2 people · 2 mentions · first linked 2018-08-01
- Dungeon Generation in Unexplored2 people · 2 mentions · first linked 2021-04-11
- Oatmeal Spice2 people · 2 mentions · first linked 2026-07-06
What Hacker News says?
Dual Contouring? https://www.boristhebrave.com/2018/04/15/dual-contouring-tut...
Comment linking /2018/04/15/dual-contouring-tutorial/
on “Veloren is a multiplayer voxel RPG written in Rust”Submitted Dungeon Generation in Diablo 1 as a story · 253 points
HN discussionIt's been discussed numerous times that this is simply a constraint satisfaction problem with hand-wavey BS applied over the top. Here's a good (free) explanation: https://www.boristhebrave.com/2020/04/13/wave-function-colla... Specifically read the 'Least Entropy' section: It's broken down very simply: Pick a random tile which is the 'least random', because (due to already having resolved the constraints we can), t…
Comment linking /2020/04/13/wave-function-collapse-explained/
on “WaveFunctionCollapse: Generates bitmaps that are locally similar to the input”Submitted Dungeon generation in the Gnomish mines of NetHack as a story · 153 points
HN discussionImho it holds up quite well. Here's an article I wrote about it when flash was still a thing: https://www.boristhebrave.com/2010/05/04/x-gems-of-as3-langu...
Comment linking /2010/05/04/x-gems-of-as3-language-design/
on “Flash Game History”Submitted Chain of Thought for Humans as a story · 144 points
HN discussionExplanations of the method: - https://robertheaton.com/2018/12/17/wavefunction-collapse-al... , 44 comments https://news.ycombinator.com/item?id=18744696 - https://www.boristhebrave.com/2020/04/13/wave-function-colla... , 18 comments https://news.ycombinator.com/item?id=18321168 More threads: https://hn.algolia.com/?q=wave+function+collapse
Comment linking /2020/04/13/wave-function-collapse-explained/
on “Wave Function Collapse library in pure C”Submitted Dungeon Generation in Enter The Gungeon as a story · 118 points
HN discussionOne of the better writeups explaining it: https://www.boristhebrave.com/2021/04/02/graph-rewriting/
Comment linking /2021/04/02/graph-rewriting/
on “Graph Theory Applications in Video Games”Submitted The Culture novels as a dystopia as a story · 95 points
HN discussionAuthor here. No. I saw some neat stuff from the author of WFC[1], and realized it combined perfectly with another proc gen algorithm I'd designed earlier[2]. Hence why this is the only implementation I've seen with non-local constraints[3] [1]: https://github.com/mxgmn/WaveFunctionCollapse [2]: https://www.boristhebrave.com/2018/04/28/random-paths-via-ch... [3]: https://boristhebrave.github.io/DeBroglie/articles/fea…
Comment linking /2018/04/28/random-paths-via-chiseling/
on “DeBroglie – Generate tile-based maps using wave function collapse”Submitted Fractal Jittered Voronoi Partitions as a story · 77 points
HN discussion+1 datapoint: I've decompiled several to find out how they work, and found most use mono. Maybe it depends how indie your game is? My dcompilation writeups can be found here: https://www.boristhebrave.com/category/level-generation/
Comment linking /category/level-generation/
on “Show HN: Il2cpp-modder – Generate DLL injection projects for hacking Unity games”Submitted Accelerated Game of Life with CUDA / Triton as a story · 50 points
HN discussionBoris the brave coined the term "Constraint Based Tile Generators" (CBTG) [0], which is a specialization of the more general CSPs to this particular domain. Personally, I find CSPs overly general and mired in esoteric, byzantine terminology. It's a large cognitive load to put on people to run through the glossary of terms just to talk about the problem set up. I don't think the quantum mechanic analogy is great but…
Comment linking /2021/10/31/constraint-based-tile-generators/
on “Procedural generation with Wave Function Collapse (2019)”Submitted Dungeon Generation in Unexplored as a story · 48 points
HN discussionThis is based off of Paul Merrell's Model Synthesis work [0]. Boris The Brave had a good writeup of the core of the algorithm [1]. Max Gumin focused on just the constraint solver and added a "minimum entropy heuristic", popularized the work and coined the term "wave function collapse", as the way the solver worked was evocative of (a naive view) of how quantum mechanics solves systems [2]. Gumin's repo also has many…
Comment linking /2021/10/26/model-synthesis-and-modifying-in-blocks/
on “Procedural generation with Wave Function Collapse (2019)”Submitted Triangle Grids as a story · 36 points
HN discussionYes. This is the standard approach going back at least as far as the first Diablo: https://www.boristhebrave.com/2019/07/14/dungeon-generation-...
Comment linking /2019/07/14/dungeon-generation-in-diablo-1/
on “Meta’s brave new horizons”Submitted An Uncanny Moat as a story · 34 points
HN discussionRead through the Super-Mario analysis, but refer to the all-caps table down below as you're reading. (HERO, NEO, BAD, DRAKE) They're basically analyzing "tropes" (common storytelling patterns), and doing something similar to advanced procedural dungeon/level generation: https://www.boristhebrave.com/2021/04/10/dungeon-generation-... ...at least this appears to be a first cut at defining a vocabulary for the storytel…
Comment linking /2021/04/10/dungeon-generation-in-unexplored/
on “TropeTwist: Trope-Based Narrative Structure Generation”Submitted Random Paths via Chiseling as a story · 34 points
HN discussion> The maze-creating algorithms might be interesting for computer scientists, but they're terrible at creating mazes interesting for humans! Not sure what would lead you to that conclusion. There's only so much you can do with (for example) a two color palette and no lawn art but it goes without saying that there's nothing restricting an implementation to the sort of minimalist methodology that's so useful for demons…
Comment linking /2021/10/26/model-synthesis-and-modifying-in-blocks/
on “Maze Algorithms”Submitted The 800k Hours Career Guide as a story · 27 points
HN discussionSubmitted Mesh Welding with Spatial Hashing as a story · 4 points
HN discussionSubmitted Ortho-Tiles as a story · 4 points
HN discussionSubmitted Constraint Solving and Wave Function Collapse Explained as a story · 4 points
HN discussionSubmitted Fractal Jittered Voronoi Partitions as a story · 3 points
HN discussionSubmitted Next Token Prediction Is a Misleading Term as a story · 3 points
HN discussionSubmitted Exploring Rectangle Subdivisions as a story · 3 points
HN discussion