Mountains, Cliffs, and Caves: A Comprehensive Guide to Using Perlin Noise for Procedural Generation

Mountains, Cliffs, and Caves: A Comprehensive Guide to Using Perlin Noise for Procedural Generation

Procedural generation is everywhere—you’ve probably encountered it without even realising. It’s what gives in-game worlds their rolling hills, jagged cliffs, and winding cave systems. And at the heart of it all is Perlin noise: a special kind of randomness that isn’t entirely random at all. It’s smooth where it needs to be, rough when we want it to be, and endlessly customizable.

Information at a Glance: Do Your Charts Suck?

Information at a Glance: Do Your Charts Suck?

Let’s face it: that report you worked on — nobody’s actually going to read it.
In the best-case scenario, people might skim through it, pausing briefly under the allure of a brightly-coloured diagram.
But if you’ve designed your diagrams properly, a brief glance is all someone should need to understand what the data is saying — at least at a high level.

The Hunt For Primes

The Hunt For Primes

Prime numbers are among the most intriguing puzzles in mathematics — seemingly random yet deeply significant.

Their elusive pattern defies easy detection, making them both a source of fascination and frustration. The challenge grows exponentially with larger numbers, where determining if a number is prime becomes immensely time-consuming.

However, some clever shortcuts can speed up the search and help us swiftly eliminate impostors.

Before we can uncover the hidden mysteries behind prime numbers, we must first face the challenge of finding them…

Flowers, Staircases, and The Golden Ratio

Flowers, Staircases, and The Golden Ratio

Have you ever climbed a staircase that just didn’t seem to be made for human legs?

The steps are too small to comfortably take one at a time, but too large for an easy double-stair.

You either end up shuffling along with baby-steps, or stretching so far that it feels like you’re trying out for the gymnastics team.

In situations like these, you might start to wonder (or maybe it’s just me?): how many different ways could you actually climb this staircase, taking just one or two stairs at a time?

What if an Infinite Number of Spaceships Arrive at Hilbert’s Hotel?

What if an Infinite Number of Spaceships Arrive at Hilbert’s Hotel?

Suppose you’ve just been hired as the new manager of Hilbert’s Infinite Hotel.
On your first day, you arrive at work only to be greeted by an infinitely long line of people in the lobby each expecting a room.
The Problem? All of the infinite number of rooms are already occupied by an infinite number of guests. The Infinite Hotel is full.

The Tower of Hanoi

The Tower of Hanoi

You’ve probably seen this puzzle before.

You could probably solve it without too much hassle.

But let’s ask a more interesting question…

What is the fewest number of moves required to solve the puzzle?

Can we prove we’re correct?

First, let’s make sure we’re all on the same page, for the benefit of those who haven’t seen this problem before.

Surviving the First Year of Your Math Degree

Surviving the First Year of Your Math Degree

Luckily, studying for a degree in mathematics is very different from high school.

Math class didn’t exactly get the best reputation in school — and I can see why. It tells students to learn about seemingly pointless techniques and memorise different formulas that 99% of them will never use again… unless they go on to become math teachers.

Things change, however, when you decide to study maths at a higher level.

Mathematics becomes much more precise, and more transparent, and emphasises problem-solving over performing the same laborious calculations you’ve done hundreds of times before from a textbook.

Python Chess: Game Simulation and Illegal Moves

Python Chess: Game Simulation and Illegal Moves

This is exciting! We’re nearly ready to start simulating a whole game of Chess. There’s just a few more components we need.
To begin, let’s first consider what information we need to encode to fully describe a move.

In standard chess move notation, we are given only the type of piece, and it’s new location. E.g. Ne2 which indicates that a knight should be moved to the square e2.