frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Start all of your commands with a comma (2009)

https://rhodesmill.org/brandon/2009/commands-with-comma/
286•theblazehen•2d ago•95 comments

Software Engineering Is Back

https://blog.alaindichiappari.dev/p/software-engineering-is-back
19•alainrk•1h ago•9 comments

Hoot: Scheme on WebAssembly

https://www.spritely.institute/hoot/
34•AlexeyBrin•1h ago•5 comments

Reinforcement Learning from Human Feedback

https://arxiv.org/abs/2504.12501
14•onurkanbkrc•1h ago•1 comments

OpenCiv3: Open-source, cross-platform reimagining of Civilization III

https://openciv3.org/
714•klaussilveira•16h ago•216 comments

The Waymo World Model

https://waymo.com/blog/2026/02/the-waymo-world-model-a-new-frontier-for-autonomous-driving-simula...
978•xnx•21h ago•562 comments

Vocal Guide – belt sing without killing yourself

https://jesperordrup.github.io/vocal-guide/
94•jesperordrup•6h ago•35 comments

Omarchy First Impressions

https://brianlovin.com/writing/omarchy-first-impressions-CEEstJk
11•tosh•1h ago•8 comments

Making geo joins faster with H3 indexes

https://floedb.ai/blog/how-we-made-geo-joins-400-faster-with-h3-indexes
138•matheusalmeida•2d ago•35 comments

Unseen Footage of Atari Battlezone Arcade Cabinet Production

https://arcadeblogger.com/2026/02/02/unseen-footage-of-atari-battlezone-cabinet-production/
73•videotopia•4d ago•10 comments

Ga68, a GNU Algol 68 Compiler

https://fosdem.org/2026/schedule/event/PEXRTN-ga68-intro/
15•matt_d•3d ago•4 comments

What Is Ruliology?

https://writings.stephenwolfram.com/2026/01/what-is-ruliology/
46•helloplanets•4d ago•46 comments

Show HN: Look Ma, No Linux: Shell, App Installer, Vi, Cc on ESP32-S3 / BreezyBox

https://github.com/valdanylchuk/breezydemo
242•isitcontent•16h ago•27 comments

Monty: A minimal, secure Python interpreter written in Rust for use by AI

https://github.com/pydantic/monty
242•dmpetrov•16h ago•128 comments

Cross-Region MSK Replication: K2K vs. MirrorMaker2

https://medium.com/lensesio/cross-region-msk-replication-a-comprehensive-performance-comparison-o...
4•andmarios•4d ago•1 comments

Show HN: I spent 4 years building a UI design tool with only the features I use

https://vecti.com
344•vecti•18h ago•153 comments

Hackers (1995) Animated Experience

https://hackers-1995.vercel.app/
510•todsacerdoti•1d ago•248 comments

Sheldon Brown's Bicycle Technical Info

https://www.sheldonbrown.com/
393•ostacke•22h ago•101 comments

Show HN: If you lose your memory, how to regain access to your computer?

https://eljojo.github.io/rememory/
308•eljojo•19h ago•191 comments

Microsoft open-sources LiteBox, a security-focused library OS

https://github.com/microsoft/litebox
361•aktau•22h ago•187 comments

An Update on Heroku

https://www.heroku.com/blog/an-update-on-heroku/
436•lstoll•22h ago•286 comments

The AI boom is causing shortages everywhere else

https://www.washingtonpost.com/technology/2026/02/07/ai-spending-economy-shortages/
31•1vuio0pswjnm7•2h ago•29 comments

PC Floppy Copy Protection: Vault Prolok

https://martypc.blogspot.com/2024/09/pc-floppy-copy-protection-vault-prolok.html
73•kmm•5d ago•11 comments

Was Benoit Mandelbrot a hedgehog or a fox?

https://arxiv.org/abs/2602.01122
26•bikenaga•3d ago•13 comments

Dark Alley Mathematics

https://blog.szczepan.org/blog/three-points/
98•quibono•4d ago•22 comments

How to effectively write quality code with AI

https://heidenstedt.org/posts/2026/how-to-effectively-write-quality-code-with-ai/
276•i5heu•19h ago•226 comments

Female Asian Elephant Calf Born at the Smithsonian National Zoo

https://www.si.edu/newsdesk/releases/female-asian-elephant-calf-born-smithsonians-national-zoo-an...
43•gmays•11h ago•14 comments

I now assume that all ads on Apple news are scams

https://kirkville.com/i-now-assume-that-all-ads-on-apple-news-are-scams/
1087•cdrnsf•1d ago•469 comments

Understanding Neural Network, Visually

https://visualrambling.space/neural-network/
312•surprisetalk•3d ago•45 comments

Delimited Continuations vs. Lwt for Threads

https://mirageos.org/blog/delimcc-vs-lwt
36•romes•4d ago•3 comments
Open in hackernews

Maze Algorithms (2017)

http://www.jamisbuck.org/mazes/
183•surprisetalk•2w ago

Comments

tromp•1w ago
A maze generator in the shape of a maze whose corridors spell a 4-letter word:

    char*M,A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf(M="%d",&C);
    --            E;             J[              E]             =T
    [E   ]=  E)   printf("._");  for(;(A-=Z=!Z)  ||  (printf("\n|"
    )    ,   A    =              39              ,C             --
    )    ;   Z    ||    printf   (M   ))M[Z]=Z[A-(E   =A[J-Z])&&!C
    &    A   ==             T[                                  A]
    |6<<27<rand()||!C&!Z?J[T[E]=T[A]]=E,J[T[A]=A-Z]=A,"_.":" |"];}
Generates a maze on the fly after entering the desired height of the maze. This compiled fine back in 1988 when I submitted it to the IOCCC (having rediscovered Eller's algorithm). Modern C compilers don't allow constant strings to be overwritten, which can be avoided by changing the first line to

    char M[3],A,Z,E=40,J[40],T[40];main(C){for(*J=A=scanf("%d",&C);
The code is explained in detail at https://tromp.github.io/maze.html
binaryturtle•1w ago
If I squeeze the eyes I can read the "MAZE". :)

Sadly neither version works here with an older clang on OS X. Both variants build fine with 9 warnings each. But the old variant dies with a "Bus Error: 10", and the new variant with "Segmentation fault: 11". Same with gcc (albeit only 8 warnings.)

/edit

OK, just wrong user input. You gotta feed it a number, and not a "foobar" or another random string.

MaskRay•1w ago
Amazing! I read you article in 2012 when the link was https://homepages.cwi.nl/~tromp/maze.html I was learning Haskell and Ocaml and wrote my own article in Chinese then https://maskray.me/blog/2012-11-02-perfect-maze-generation

Now I should fix the link.

munificent•1w ago
Neat!

Related: Here's a C program that draws random dungeons sort of like you use in a roguelike dungeon crawler:

    #include <time.h> //  Robert Nystrom
    #include <stdio.h> // @munificentbob
    #include <stdlib.h> //     for Ginny
    #define  r return    //    2008-2019
    #define  l(a, b, c, d) for (i y=a;y\
    <b; y++) for (int x = c; x < d; x++)
    typedef int i;const i H=40;const i W
    =80;i m[40][80];i g(i x){r rand()%x;
    }void cave(i s){i w=g(10)+5;i h=g(6)
    +3;i t=g(W-w-2)+1;i u=g(H-h-2)+1;l(u
    -1,u+h+2,t-1            ,t+w+2)if(m[
    y][x]=='.'                  )r;i d=0
    ;i e,f        ;if(!s){l(      u-1,u+
    h+2,t-    1,t+w+2){i s=x<t     ||x>t
    +w;i    t=y<u||           y>    u+h;
    if(s    ^t&&              m[      y]
    [x    ]=='#'    ){d++;    if(g    (d
    )     ==0)    e=x,f=y;    }}if    (d
    ==    0)r;    }l(u-1,u    +h+2    ,t
    -1    ,t+w    +2){i s=    x< t    ||
    x>    t+w;    i t= y<u    ||y>    u+
    h;    m[y]      [x]= s    &&t?   '!'
    :s^t    ?'#'                    :'.'
    ;}if    (d>0)m                  [f][
    e]=g(2    )?'\'':'+';for(i j=0;j<(s?
    1:g(6)        +1);j++)m[g(h)+u][g(w)
    +t]=s?'@'                 :g(4) ==0?
    '$':65+g(62)              ;}i main(i
    argc, const char* argv[]) {srand((i)
    time(NULL));l(0, H, 0,W)m[y][x]=' ';
    for(i j=0;j<1000;j++)cave(j==0);l(0,
    H,0,W) {i c=m[y][x]; putchar(c=='!'?
    '#':c);if(x==W-1)printf("\n");}r 0;}
dfajgljsldkjag•1w ago
I've always known about algorithms that solve mazes, but never about actually making them. It's interesting seeing all these algorithms and how the mazes they generate look different.
amelius•1w ago
The main insight in many of these algorithms is that if you have a tree, there's exactly one path between any two leaves (assuming you don't pass over a branch twice). So if you just draw a random tree-like structure and make the entry and exit points of the maze leaves in the tree, then you have a valid maze with exactly one solution.
bonsai_spool•1w ago
Mike Bostock had several very lovely visualizations back on the D3.js site which I can't find. Here's a cool blogpost he wrote: https://bost.ocks.org/mike/algorithms/#maze-generation
dang•1w ago
Related? https://news.ycombinator.com/item?id=7632092 (April 2014)
OscarCunningham•1w ago
Is it known which algorithms produce 'difficult' mazes? I'm imagining you could run all the maze solving algorithms against all the maze generating algorithms many times, and then calculate what the Nash equilibrium would be if the solver is trying to minimise expected time and the generator is trying to maximise it.
1313ed01•1w ago
There is another old site ("since September 23, 1996"), my second favorite maze site, that has some articles about things like that. Like on the page below ("Tips on how to create difficult and fun Mazes, and how to solve and analyze them").

https://www.astrolog.org/labyrnth/psych.htm

I think there is a difference if you want to make it only expensive to solve using popular maze solver algorithms, vs to make it difficult for a human to solve. Many of the recommendations on that page are for how to do things that can make a maze more difficult for humans to solve, but will not always matter to an algorithm that just mechanically tries solutions in some order.

nickevante•1w ago
For anyone interested in this, Jamis Buck's book 'Mazes for Programmers' is a masterpiece of the genre.

My personal favorite distinction is between the Recursive Backtracker (which creates long, winding corridors with few dead ends which is great for tower defense games) vs. Prim's Algorithm (which creates lots of short cul-de-sacs which is better for roguelikes). The bias of the algorithm dictates the feel of the game more than the graphics do.

jaberjaber23•1w ago
seconding the jamis buck book, its one of the few programming books i actually finished. the way he explains each algorithm with visualizations makes it stick
ginko•1w ago
It feels like many of the more complicated algorithms produce worse mazes (long horizontal/vertical walls, many 1-2 square dead ends next to another) than basic recursive backtracking.
dang•1w ago
Related:

Maze Generation: Recursive Division (2011) - https://news.ycombinator.com/item?id=42703816 - Jan 2025 (12 comments)

Maze Algorithms (2011) - https://news.ycombinator.com/item?id=23429368 - June 2020 (22 comments)

Representing a Toroidal Grid - https://news.ycombinator.com/item?id=10608476 - Nov 2015 (2 comments)

Maze Generation: Recursive Backtracking - https://news.ycombinator.com/item?id=4058525 - June 2012 (1 comment)

Maze Generation: Weave mazes - https://news.ycombinator.com/item?id=4052856 - June 2012 (3 comments)

Maze-generation algorithms, with JS demos - https://news.ycombinator.com/item?id=2190017 - Feb 2011 (9 comments)

Generating random mazes with the Growing Tree algorithm (w/ Javascript demo) - https://news.ycombinator.com/item?id=2148348 - Jan 2011 (6 comments)

Maze Generation: Wilson's algorithm - https://news.ycombinator.com/item?id=2123695 - Jan 2011 (11 comments)

Maze Generation: Kruskal's Algorithm - https://news.ycombinator.com/item?id=2062999 - Jan 2011 (9 comments)

Maze Generation: Eller's Algorithm - https://news.ycombinator.com/item?id=2048752 - Dec 2010 (9 comments)

Also:

Wilson's Algorithm - https://news.ycombinator.com/item?id=45549017 - Oct 2025 (9 comments)

Maze Tree - https://news.ycombinator.com/item?id=7746822 - May 2014 (38 comments)

Solving a Maze with D3.js - https://news.ycombinator.com/item?id=7631864 - April 2014 (19 comments)

Think Labyrinth: Maze Algorithms - https://news.ycombinator.com/item?id=10101728 - Aug 2015 (10 comments)

Practical algorithms and code optimization: maze generation - https://news.ycombinator.com/item?id=5431561 - March 2013 (10 comments)

Maze Algorithms - https://news.ycombinator.com/item?id=157266 - April 2008 (1 comment)

Others?

y42•1w ago
of course! :D (how to approach the development of a maze algorithm)

https://news.ycombinator.com/item?id=23131983

dang•1w ago
That's not a good link for a list of past threads since the idea for the latter is to include only the ones with interesting comments.

However, it looks like a good article that could use a repost! Just not soon, since we want to give enough time for the hivemind caches to clear :) - if you want to repost it in (say) a month or two, email us at hn@ycombinator.com and we'll put it in the SCP (https://news.ycombinator.com/item?id=26998308).

y42•1w ago
Sure will do, thanks! (first time I am hearing about the "SCP")
indigoabstract•1w ago
I especially like this one:

https://news.ycombinator.com/item?id=45549017

Wilson’s Algorithm gives the most pleasing visual results for me.

dang•1w ago
Added above - thanks!
richard_chase•1w ago
This is the kind of stuff I come here for.
kamens•1w ago
I used Jamis' book extensively to build this AI tool for generating custom mazes of any shape! https://kamens.com/blog/generating-custom-mazes-with-ai
kamens•1w ago
The main difference between the above tool and most custom shaped maze generators out there is breaking the assumption that the maze's outer shape must be defined by adding or removing regularly-shaped cells along the edge.

To have mazes look more human drawn, cells need to be irregular and the inner walls need naturally follow the contours of the outer shape.

jcynix•1w ago
You show an impressive variation of mazes, cool!
kamens•1w ago
thank you! we've generated ~600 crazy unique mazes for kids so far, kinda want to make a gallery
ogogmad•1w ago
Have you considered finding a conformal transformation† that maps a square to any other possible shape, as long as the shape doesn't have any holes? Such a transformation always exists by the Riemann Mapping Theorem, and is unique as long as you specify in addition (1.) which point the square's centre maps to, and (2.) the angle of rotation around that point. Not sure if anyone's ever tried that.

If you actually want more aesthetic freedom, you can compose with an arbitrary diffeomorphism of the square to itself. But I think that might usually look worse.

† - That is, preserving all angles, including right angles. The terminology stems from the output angles conforming (???) to the input angles.

ogogmad•1w ago
P.S. This suggestion would eliminate your pinch points.
kamens•1w ago
i'm torn between my stupidity re:your first comment and my love of eliminating pinch points (now you're speaking my language). i need to read up a lot to better understand your suggestion!

(most pinch points are gone these days, it just required a lot of edge case hunting)

jtolmar•1w ago
Lovely page. Reminds me of the venerable Think Labyrinth (https://www.astrolog.org/labyrnth/algrithm.htm) page, but the live demos add a lot.

My favorite maze algorithm is a variant of the growing tree algorithm - each time you carve a cell, add it to a random one of N lists. When choosing a cell to visit, pop the last cell off the first non-empty list. It's considerably faster than the standard tree algorithm, but more importantly, changing N has a dramatic impact on the texture of the maze (compare 1 2 4 8 etc on a decently large maze).

89netraM•1w ago
I've built a few maze generators based on Jamis' book. The one I'm most proud of is this one https://xn--sberg-lra.net/maze/irregular?size=5&entryCount=1 that generates SVG mazes with sort of irregular lines.
racecar789•1w ago
Pretty good! It would be nice to have a little icon showing at the preferred ending location.
89netraM•1w ago
Thanks! Yeah, you're right, the point is to get to the center, and it's a lot easier to know where that is on my original "Polar" maze https://xn--sberg-lra.net/maze/polar?size=5&entryCount=1 I should update them to have a goal icon like you say, maybe antoher time.
snorbleck•1w ago
Awesome resource. I recently (in the past week) created a maze game. I used Claude (sonnet 4.5) for the most part, but some things, like images, were created with ChatGPT. I may do a blog about it if anyone is interested in the inner-workings and my thought process from concept to vibecoded. I am by no means a game dev, was just curious about what it would take to create unique single solution mazes with some game-like components thrown in, and trying it with the assistance of AI. It turned out somewhat retro. Now go get lost!

https://lorelabyrinth.entropicsystems.net/weekly

PacificSpecific•1w ago
Hey thanks for sharing. I gave it a try but ran into some issues.

Is this intended to be able to be used on a phone? I saw the instructions about guiding a yellow ball but what I experienced was about 10 seconds of chiptune music with a maze that had some icons I couldn't interact with.

After the 10 seconds a series of green spheres and vertical lines washed across the screen but I wasn't able to control them.

I'm using the duck duck go browser on Android if that helps.

snorbleck•1w ago
Hi there; NOT compatible or designed with mobile in mind unfortunately. Built more for desktop browser and keyboard (WASD-style movement controls) or trackpad. That, and the maze image generator in its current form requires static dimensions so the pieces can be placed within their chosen coordinates, meaning it displays better on full-sized browser :(
PacificSpecific•1w ago
Ah fair enough! Will give it another go from my desktop tomorrow.
bricks96•1w ago
Here's a Google Sheets Maze Generator that's pure formula and no script. This post has got me thinking how I might format the formula to be shaped like a maze. https://tinyurl.com/SheetsMazeGenerator
rawxtl•1w ago
I still remember the days when I started out programming.. I used simply copy and write code from TheCodingTrain's challenge videos. And the recursive backtracking algorithm was the first project I took on by myself coding it in java while only looking at how it works from his explanation.
ZuzuDuck•1w ago
This makes me nostalgic, when i started to programming i tried to create ultimate generating maze algorithm and use it in some game. But my solutions was really naive.