If you have ever visited SIMO's website, you may find some beautiful patterns shown on the page headers. You may have seen the screenshot above as well. If you haven't, visit here or here. These patterns are perfect wallpapers for your phones. Take a look of the lock screen of my iPhone below; I think they are really cool.

In this post, I show you how these patterns can be easily generated using SIMO. All you have to do is to setup a bivariate function and then plot it out using surf(). These patterns are in fact fully customisable. You can create a unique pattern for yourself by experimenting with various parameters.

Before diving further into this post, you may want to checkout the tutorial video below:

Before diving further into this post, you may want to checkout the tutorial video below:

As an example, I am going to create the second pattern shown above. It is actually the function z(x,y)=cos(y)+sin(x). If you run the code below in SIMO, it will give you the surface plot in Figure 1 below.

[x,y]=meshgrid(linspace(-4*pi,4*pi,60)); z=cos(y)+sin(x); surf(x,y,z)

This plot is not yet beautiful enough for wallpapers. Let's make it more artistic. We have to change its orientation (Figure 2), and then enlarge it to fill the whole screen (Figure 3). You can use two-finger pinch to zoom, and three-finger swipe to rotate.

Next, tap "Save as Image" from the Actions menu (Figure 4). Your pattern is now saved as an image in your Photos app (Figure 5). Make sure that SIMO has right to access your iPhone's photo. If not, a warning message will be shown (Figure 6). In this case, change your privacy settings from Settings > Privacy > Photos, as shown in Figure 7.

By following the same procedures stated above, you can also generate wallpapers of other patterns. Here, I give SIMO codes for generating patterns shown in the figures below. You can tap to download the full resolution images.

t=linspace(0,20,150) u=linspace(-1,1,50); [T,V]=meshgrid(t,u); surf(T,V.*cos(T),V.*sin(T))

[u,v]=meshgrid(linspace(-6*pi,6*pi,90)); z=cos(sqrt(u.^2+v.^2)); surf(u,v,z)

[x,y]=meshgrid(linspace(-4*pi, 4*pi, 60)); z=cos(y)+sin(x); surf(x,y,z)

[x,y]=meshgrid(-10:0.4:10); s=10*sin(x+sin(y)); surf(x,y,s)