Welcome to my site.

This is where I showcase the various images I've created over the years pursuing my hobby of using maths to create patterns. Wherever possible I've tried to provide explanations of how the patterns are generated and in some cases I've provided source code that you can download and adapt.

The site also contains some photos from some of my holidays, artwork by my brother and the fruits of my brother's butterfly hunting around the United Kingdom and in the West Indies. He's one butterfly short of the full set.

Please Enjoy
John (eddaardvark@yahoo.co.uk)


October 2023, HTTPS I have started encountering issues with the browser refusing to load HTTP links in a HTTPS context. I am working through this but there are a lot of pages to update. Bear with me. As part of this process I'm trying to make page layouts across the site more consistent and I've also fixed lots of broken links. Plus, I've uploaded my 2019 holiday snaps.

October 2023, Spirograph I've completely rewritten this to fix a lot of bugs, add a few new features (split mode) and to greatly improve the help system by adding context sensitive help with example output. You can see it here

June 2022, 3*x+1 pages I've tidied up the layout and made them more interactive, especially the lists and loops page where I present an algebraic route to constrain where any loops in the 3*x+1 system might be found. This illustration shows the potential structure of loops with 8 odd numbers and 14 even ones.

one of the identified constraints is that the number of even numbers (m) and odd number (n) must satisfy


Each vertical line shows a potential loop generated by these m and n values. The dots show where the odd numbers would fall within these loops.

November 2021, Sum of three cubes: I've been looking at the structure of the equation V=x^3+y^3+z^3, where there seems to be a lot of interest in finding values of, x, y and z that produce small values of V. Earlier I created a page exploring the algorithm presented by Numberphile (YoutTube video) , which discussed finding integer solutions for the x, y and z when V=33. The solution found has x, y and z values with 16 digits. They also have a video to V=42, there the numbers have 17 digits. These guys had a rack of GPUs, presumably running optimised code. That isn't something I can challenge using Javascript running in a browser, so instead I though I'd look at the structure of the function, to see if there are any patterns that might guide searches to a small value more efficiently.

Rather than just trying out x, y and z values I start with the equation 0=x^3+y^3-z^3, this generates a function relating z to x and y, z=f(x,y). When x and y are integers other than 0, z will be irrational (if not you've found a contradiction to Fermat's theorem). So instead I look at the two integers Zs and Zv, that define the interval that contains z, Zv<z<Zs. Actually, Zs=Zv+1. Substituting these z values into the original equation will generate two integers, V we've already encountered, and S, which will be negative. S can be used to generate a positive value by inverting the original equation, (−S)=z^3-x^3-y^3.

A graph showing the V and S values (blue, red) as we trace a contour on the V=0 surface. The contours I use are lines of constant x-z.

Click the image for more detail, or here to visit the "Cube Sums" pages.

August 2021: I've created a new application based on the algorithms used in the molecular simulations I made for my PhD back around 1980. You can find it here.

In this case I'm simulating square-like particles on a square grid. Although I'm using thermodynamics based algorithms, this is more about in seeing what patterns are created rather than solving any real world problems. The application allows you to set the interaction energies between the different molecule types, and adorn the edges of the squares with protrusions or sockets. The algorithm rejects arrangement where the spikes project into adjacent molecules, and it is this rule that has the largest impact on the structures generated. You can also see how temperature can be used to crystallise or melt these structures. There is a YouTube video that demonstrates using the application, and shows some examples. Click the image on the left to expand it.

May 2021: I've redone the Newton Fractal page, hopefully making the user interface easier to use, especially when creating animations.

October 2019: I've redone the affine transformation pages using javascript, making them interactive. You can find the new page here.

June 2016: I've created an interactive version of the colouring-in pattern generator to replace the one that used to run on Google's AppSpot. You can find it here.

Featured Links

Other pages

(c) John Whitehouse 2001 - 2023