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.
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.
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.
|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.
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.
(c) John Whitehouse 2001 - 2023