Mostly Misaligned Mirrors

Recently my stochastic professor introduced me to a problem he has been pondering for over two decades: on the two-dimensional integer lattice \mathbb{Z}^2 one shall flip a three-sided coin for each point and uniformly place one of three mirrors, \{\diagup,\,\cdot\,,\diagdown\}, where \,\cdot\, denotes not placing a mirror. After having populated the world, one picks their favorite integer tuple and points a beam of light in one of the four cardinal directions. With what probability does the light fall into a loop, never fully escaping?

Simulating a beam of light bouncing off mirrors.
A cycle which includes the origin.

Continue reading


Inspired by the current weather – my favourite weather, the rain – I made this simple simulation. There are no controls, just look at it quietly and peacefully.
quietly dripping raindrops

# Python 2.7.7 Code
# Pygame 1.9.1 (for Python 2.7.7)
# Jonathan Frech 1st of May, 2015

Continue reading


I had an idea to make a simulation which generates stars. Using my ‘getCirclePos()’ function, two radii – an inner and an outer one – and a number of points I realized the idea in this program.

How it works

\frac{360^\circ}{\text{number of points}} = \text{circle sector}
\frac{360^\circ}{\text{number of points} \cdot 2} = \text{shifted circle sector}

Using those to sectors – and alternating between the inner (shifted) and outer radius – the program connects the points and out comes a star shape.

How to use

  • ‘d’ toggles debug mode (gray circles)
  • ‘f’ toggles points being drawn (blue points at the corners)

The First Example The Second Example The Third Example

# Python 2.7.7 Code
# Pygame 1.9.1 (for Python 2.7.7)
# Jonathan Frech 24th of April, 2015

Continue reading