How every Pyxis web is made, and why none is easier than the last
Every Pyxis level starts as a finished web and is tangled backwards. Here is how the webs are drawn, tangled, measured and put in order, chapter by chapter.

No Pyxis level is drawn by hand. A program makes every one, and every one is built backwards: it starts as a finished web and gets tangled. That one choice is why every level can be cleared, and it is where the rest of this post begins.
Start from the answer
A level begins as a clear web: knots joined by straight strands, with nothing crossing. The game keeps that layout as the level’s answer key. Square knots keep their spot in it, and every rail and ring passes through it. So however tangled the level starts, moving each knot back to its spot always clears it.
A finished web should look drawn, not forced, so the program is fussier than the rules. Knots stay well apart, strands keep clear of knots they do not touch, and no two strands meet at a needle-thin angle. A small web gets a small frame, so the first levels are a neat little picture rather than a few dots scattered across the board.
A different kind of web for every chapter
Each chapter draws its webs from its own family, which is most of what makes it feel like itself.

- Scattered webs start as dots spread evenly at random, joined into triangles, then thinned out strand by strand.
- Wheels have a hub in the middle, held in place, with a rim around it.
- Lattices are patches of a square or triangular grid with a few links missing, so a tangle in them stands out.
- Crossroads are straight lines laid across the sky, with a knot wherever two of them meet.
- Spirals, twin clusters, halos with every knot on one rim, and comets with long tails all have chapters of their own.
Some webs are real constellations. Those come from a star atlas, and there is a whole post on how a constellation becomes a level.
Tangling it, a chapter’s own way
Then the web gets tangled, and each chapter has its own way of doing that too. Some knots get plucked out and dropped where their strands cross others. Pairs of knots swap places. A patch of the web gets twisted round, or the whole web is folded over along a line. Later on, every free knot is laid round a circle or along a spiral in a shuffled order.

A tangled start has one more rule. No two knots begin crowded together, and no knot begins sitting on a strand. So every tangle you see at the start is the plainest kind there is: two strands crossing. And any knot that was moved has to be in at least one crossing, so nothing moved for nothing.
Measuring a web
Every candidate web is measured before it can be a level.
- The goal. The game has a solver, the same one behind the hint, and its route to a clear web is the level’s goal for three stars. The program runs a copy of that solver, step for step, so it knows the goal before the game does.
- The fewest knots. An exact count of how few knots any solution has to move, found by checking every possible set of knots at once.
- What there is to see: how many knots, strands and crossings, and how many of the knots are held by anchors, rails or rings.
- How hidden the answer is: how few of the smallest sets of knots to move actually work, and how far the goal’s route has to carry its knots.
Those go into one score, with moves counting most. The exact weights are a judgement, not a law of nature, and real players will tell us where they are off.
Putting them in order
Each chapter gets a few hundred candidates. Then the program picks every level of the game in one go, so that two promises hold all the way through, chapter starts included:
- the score rises at every single level
- the fewest knots any solution has to move never drops from one web to the next
A constellation keeps the first promise but not always the second. A seven-star figure rarely needs as many knots moved as the webs around it in the middle of the game, so holding it to that would leave most figures only a chapter or two where they could ever fit.
The goal usually rises too, but it is allowed to dip by a move when a web makes up for it in everything else: more knots, more strands, more crossings, longer pulls. Holding the goal as well would let one hard level drag every level after it up to its goal.

The constellations get their places first, spread out along the way, the small ones early. Then one search runs over every level at once and finds the chain of webs that stays closest to a smooth rising line while keeping both promises.
It has to be all at once. Picking a chapter at a time does not work, and we found that out the hard way. A chapter that ends a little high leaves the next one starting near the top of its own webs, so that one has to end higher still, and soon the game is running away from itself with nothing left for the later chapters.
The very first levels are as gentle as a web can be: one knot out of place, one crossing, one pull.
No copies
A web that is just an earlier one in disguise is thrown out. Two webs count as the same if one can be relabelled into the other, with every anchor, rail and ring matching. Two starting layouts count as the same if most of their knots and most of their strands line up in any of the board’s eight turns and flips. Knots alone are not enough: every start laid round a circle puts its knots on the same spots, whatever web joins them. A constellation is itself whatever its shape, so for those only the layout has to be new.
