## The Unreasonable Effectiveness of Quasirandom Sequences

I present a new low discrepancy quasirandom sequence that offers many substantial improvements over other popular sequences such as the Sobol and Halton sequences.

## Improving on the UCB1 multi-armed bandit algorithm

I propose a new algorithm for multi-armed bandits that is fully deterministic, as fast and simple to implement as UCB1, and yet, for a very broad range of practical circumstances empirically outperforms many of the existing industry standard Bernoulli multi-armed bandit policies, including Thompson Sampling and UCB1 and UCB-tuned.

## How to evenly distribute points on a sphere more effectively than the canonical Fibonacci Lattice

Mapping the Fibonacci lattice (aka Golden Spiral, aka Fibonacci Sphere) onto the surface of a sphere is an extremely fast and effective approximate method to evenly distribute points on a sphere. I show how small modifications to the canonical implementation can result in notable improvements for nearest-neighbor measures.

## How to generate uniformly random points on n-spheres and in n-balls

For many Monte Carlo methods, such as those in graphical computing, it is critical to uniformly sample from $d$-dimensional spheres and balls. This post describes over twenty different methods to uniformly random sample from the (surface of) a $d$-dimensional sphere or the (interior of) a $d$-dimensional ball.

## Going beyond the Golden Ratio.

I show that for the same reason that the golden ratio, $\phi=1.6180334..$, can be considered the most irrational number, that $1+\sqrt{2}$ can be considered the 2nd most irrational number, and indeed why $(9+\sqrt{221})/10$ can be considered the 3rd most irrational number.

## Maximal Poisson disk sampling: an improved version of Bridson’s algorithm

Bridson’s Algorithm (2007) is a very popular method to produce maximal ‘blue noise’ sample point distributions such that no two points are closer than a specified distance apart. In this brief post we show how a minor modification to this algorithm can make it up to 20x faster and allows it to produce much higher density blue noise sample point distributions.

## A new method to construct isotropic blue-noise sample point sets with uniform projections

I describe a how a small but critical modification to correlated multi-jittered sampling can significantly improve its blue noise spectral characteristics whilst maintaining its uniform projections. This is an exact and direct grid-based construction method that guarantees a minimum neighbor point separation of at least $0.707/n$ and has an average point separation of $0.965/n$.

## A simple method to construct isotropic quasirandom blue noise point sequences

I describe a simple method for constructing a sequence of points, that is based on a low discrepancy quasirandom sequence but exhibits enhanced isotropic blue noise properties. This results in fast convergence rates with minimal aliasing artifacts.

## Evenly Distributing Points in a Triangle.

Most  two dimensional quasirandom methods focus on sampling over a unit square. However, sampling evenly over the triangle is also very important in computer graphics.  Therefore,  I describe a simple and direct construction method for a point sequence to evenly cover an arbitrary shaped triangle.

## An alternate canonical grid layout with uniform projections

When points are placed in a canonical grid layout, they are well-separated and their projections are uniform. I present a simple canonical grid layout which  offers better closest-neighbor characterisics than the two most common contemporary canonical layouts.

## Trigonometry in Pictures

This post shows how the core trigonometric definitions, relations and addition theorems can be simply and intuitively visualized.

## A Formula for the Perimeter of an Ellipse

Unlike for circles, there isn’t a simple exact closed formula for the perimeter of an ellipse. We compare several well-known approximations, and conclude that a formula discovered by Ramanujan is our favourite, due to its simplicity and extreme accuracy.

## Lissajous Curves

This post illustrates and explains the beautiful Lissajous Curves – trajectories of points whose coordinates follow sinusoidal movements.  A simple but timeless classic curve that has numerous applications as well as artistic elegance.

## A simple formula for Sequences and Series

If you are given the initial terms of a sequence, then here is an insanely simple method to derive a general formula for the first N terms, as well as the sum of the first N terms of the sequence.

## A probabilistic approach to fractional factorial design

I describe a probabilistic alternative to fractional factorial design based on the Sobol’ low discrepancy quasirandom sequence. This method is robust to aliasing  (confounders), is often simpler to implement than traditional fractional factorial sample designs, and produces more accurate results than simple random sampling.

## The Theil-Sen and Siegel non-parametric estimators for linear regression

The Theil-Sen (Kendall) and Siegel estimators are non-parametric distribution-free methods used to fit a line to data, in ways that are very robust to large levels of noise and outliers. We briefly illustrate how the lesser-known Siegel estimator is typically better than the more commonly used Theil-Sen estimator.

## Multiple Pendulums

This fun post illustrates the phenomenon of multiple uncoupled pendulums whose periods are all rational multiples of each other.

## Efficient methods to estimate accuracy and variance for quasi-monte carlo integration.

In this brief post, I describes various methods to estimate uncertainty levels associated with numerical approximations of integrals based on quasirandom Monte Carlo (QMC) methods.

## The Fisher-Yates Algorithm

Creating unbiased random permutations of lists is often crucial to sampling. The Fisher-Yates shuffle is the definitive method to shuffle a sequence of items. Popularised by Knuth, it is unbiased, has optimal linear time efficiency; uses constant space; and is incremental.

## Evenly distributing points on a sphere

How to distribute points on the surface of a sphere as evenly as possibly is an incredibly important problem in maths, science and computing, and mapping the Fibonacci lattice onto the surface of a sphere via equal-area projection is an extremely fast and effective approximate method to achieve this. I show that with only minor modifications it can be made even better.