Cull

A balancing puzzle about keeping an ecosystem in check by thinning the numbers, which is what a cull is. Everything you leave alive feeds something else, so getting one predator's share right will overfeed its neighbour.

How to play

Populations move up and down on plus and minus buttons, apart from the ones shown in grey, which are fixed and have to be worked around.

  1. Read a row It shows what the animal eats and, at the end, how much it is getting against how much it needs.
  2. Start at the top A predator eating only one species tells you that species’ population outright.
  3. Follow the consequences Once a population is fixed, every other predator eating it has one fewer unknown.
Full instructions

In depth

Balancing a food web with mental arithmetic

How the food web works, why the numbers must be exact, the solving trick that starts at the top, and what to do when two predators share the same prey.

Screenshot: How to play Cull
How to play Cull as it appears when the page opens.

What the puzzle asks

You are given a food web. It has plants at the bottom and predators stacked above them in tiers. Every animal that eats has a stated appetite - a number saying how much food it needs. Your job is to set the population of each species so that every appetite is met exactly. Not roughly. Exactly.

Each individual of a species supplies one unit of food to each predator that eats it. If a fox eats voles and the fox needs six units, there must be exactly six voles. But the vole might also be eaten by an owl. If the owl needs four units, there still must be exactly six voles, and the owl gets its four from those same six. One animal feeding two predators is the whole tension.

Some populations are already filled in and shown in grey. You cannot change those. They are the anchor points that pin the puzzle to a single answer.

How the tiers work

Species are arranged in tiers. Plants sit at the bottom. They grow on their own and have no appetite to satisfy. Above the plants come herbivores, and above them come predators. A species only ever eats from the tier directly below it, never from its own tier or above.

This structure matters because it prevents loops. A fox cannot eat a lynx that eats the fox. The web is always a directed graph flowing upward from plants to apex predators, so the equations it creates can always be solved from the top down without going in circles.

The number of tiers depends on the web size. A small web has two tiers above the plants. A large web has three. More tiers mean more layers of dependency, and that makes the arithmetic harder to keep in your head.

Controls and the interface

Each species appears as a row. The name is on the left. Next to it are plus and minus buttons for setting the population, unless the number is fixed, in which case a grey number appears instead.

On the right side of each row, eaters show what they eat and a fraction: how much food they are getting versus how much they need. When the two numbers match, the row turns green. When they do not match, the row stays in a warning state.

The stat panel above the board tracks appetites met out of the total number of eaters, and how many changes you have made. The game is won when every eater is green at the same time. Fewer changes give a better score.

Starting from the top

The fastest way into any web is to find a predator that eats only one species. If a falcon eats only finches and needs five units, there must be exactly five finches. That population is solved in one step.

Once you know the finch population, look for every other predator that also eats finches. Each one now has one fewer unknown in its appetite equation. An owl that eats finches and beetles and needs nine units now needs nine minus five equals four units from beetles alone. So there are four beetles.

This pattern cascades. Fix one population, and it reveals the next. Work from the top of the web downward, and you rarely need to guess.

When two rows share prey

The puzzle gets interesting when two predators eat almost the same set of species. Suppose a weasel eats voles and hares and needs seven, while a fox eats voles and needs four. The fox tells you directly: four voles. Then the weasel needs seven minus four equals three hares.

Now suppose both the weasel and the fox eat voles and hares, but the weasel also eats beetles. If you subtract the fox's appetite from the weasel's, the voles and hares cancel out, and you are left with the beetle population as the difference.

This subtraction trick is exactly what you would do with simultaneous equations on paper. The food web is a set of equations dressed up in animal names, and the standard algebra techniques work here. You just do them in your head instead of on paper.

Using the fixed numbers as anchors

The grey populations are the clues. They cannot be changed, and they exist to make the puzzle have exactly one answer. Without them, there would be many possible balances.

Build outward from the anchors. If a fixed population feeds into a predator whose other prey are unknown, that predator's equation now has one known term. The remaining unknowns become easier to solve.

If you ignore the fixed numbers and try to solve the free ones by trial and error, you will bounce between adjustments forever. The anchors are there to give you a starting foothold, and the puzzle is designed so that using them leads to a clean chain of deductions.

Why close is not good enough

There is no partial credit. An animal needing six units of food must get six. Five is wrong. Seven is wrong. The row stays in its warning state until the fraction reads the exact number over the exact number.

This strictness is what makes the puzzle a logic game rather than a guessing game. If you could be off by one, multiple answers would work and the deduction chain would break. The single correct answer exists precisely because every equation is exact.

If you think you have the right answer but one row still shows a mismatch, check whether you mixed up two species. A common mistake is to set the beetle count to what the hare count should be. The names matter because two different species can have the same population, and swapping them breaks a different row.

A worked example on a small web

Imagine a small web with three plants, two herbivores and one predator. Grass, clover and moss grow on their own. The beetle eats grass and clover and needs five. The hare eats clover and moss and needs six. The fox eats beetles and hares and needs four.

The fox eats beetles and hares and needs four total. Suppose beetle is fixed at two. Then hare must be two, because two plus two is four. Now the hare eats clover and moss and needs six. If moss is fixed at three, then clover must be three. Now check the beetle: it eats grass and clover and needs five. Clover is three, so grass must be two.

Set grass to two, clover to three, moss to three, hare to two. Every row goes green. The whole solve took four deductions, each following from the one before.

Choosing the web size

Small webs have about five species and two tiers. The deduction chain is short and the arithmetic is simple. This is the place to learn the rules.

Medium webs have about seven species and three tiers. More species means more shared prey, and the subtraction trick becomes necessary. You will need to hold two or three numbers in your head at once.

Large webs stretch to nine species and three tiers. The chains are longer, the shared prey is more tangled, and a mistake early on ripples through everything downstream. Start small, move to medium when you can solve small webs without errors, and save large for when the method is second nature.

Mistakes that waste changes

  • Guessing instead of deducing. Each click of the plus or minus button counts as a change. Random adjustments inflate the score. Think first, then click once.
  • Starting in the middle of the web. The top predators have the simplest equations because they eat fewer species. Start there.
  • Forgetting that plants have no appetite. The bottom row of species does not need feeding. Their populations only matter as inputs to the herbivores above.
  • Raising one population to fix a row without checking what it does to another row. A change that feeds one predator properly can overfeed a different one that shares the same prey.
  • Treating fixed numbers as suggestions. The grey populations are locked. Building a plan that needs them to be different is a dead end.

Your data stays on your machine

The game generates its webs and checks your answers entirely in your browser. No puzzle data is sent to a server, no account is required, and your best score is stored locally on this device. Once the page is loaded, the game works with no internet connection at all. Close the tab and nothing is left behind.

Help

How to play Cull

Populations move up and down on plus and minus buttons, apart from the ones shown in grey, which are fixed and have to be worked around. Anything that eats takes one unit of food from each individual of each species it hunts, and its row turns green only when the appetite is met exactly, so too much is as wrong as too little.

Read a row

It shows what the animal eats and, at the end, how much it is getting against how much it needs.

Start at the top

A predator eating only one species tells you that species’ population outright.

Follow the consequences

Once a population is fixed, every other predator eating it has one fewer unknown.

Balance them all

The web is right when every eater is green at the same time. Plants at the bottom have no appetite of their own.

Simultaneous equations in fur

Each appetite is a straight sum of the populations below it, so a whole web is a set of simultaneous equations — and solving it is the same work as solving them, done by eye. The species are arranged in tiers and only ever eat from the tier below, which means the web can never contain a loop and the equations can always be worked through in order. Every web is generated by choosing real populations and reading the appetites off them, so a balance always exists; the fixed numbers are then found by wiping populations one at a time and keeping each one wiped only while a solver still reports a single answer.

Good to know

Subtract two rows

If two predators eat almost the same things, the difference between their needs tells you about the one species they do not share.

A lone prey is a giveaway

An animal that eats exactly one species has that population handed to it. Look for those first.

Nothing has slack

Close is wrong. An animal needing six units gets six or the web is unbalanced.

Fixed numbers are anchors

The grey populations cannot be changed, so build outward from them rather than guessing at the free ones.

Common questions

How much food does one animal supply?
Exactly one unit to each of its predators. Being eaten by two does not halve it.
Do plants need feeding?
No. Species at the bottom grow on their own and have no appetite of their own to satisfy.
Why can I not change some numbers?
They are given, and they are what pins the web down to a single answer.
Can a species eat another in the same tier?
No, only from the tier below — which is what stops a web eating its own tail.
Is there always exactly one answer?
Yes. Populations are only left blank while a solver still finds a single balance.