Another version of this article on the homepage.
Wolfram Technology Conference presentation: https://www.wolfram.com/broadcast/video.php?v=2502
See Bridges 2018 paper Multi Scale Truchet Patterns for more explanations.
To use this notebook, put the package file MultiScaleTruchetPatterns.wl (attached below) in the same directory as the notebook.
Wolfram Technology Conference presentation: https://www.wolfram.com/broadcast/video.php?v=2502
See Bridges 2018 paper Multi Scale Truchet Patterns for more explanations.
To use this notebook, put the package file MultiScaleTruchetPatterns.wl (attached below) in the same directory as the notebook.
History
History
“Truchet tiles” originate with a treatise by Sebastien Truchet published in 1704, Mémoir sur les Combinaisons, in which Truchet investigates the kinds of patterns that can be made with a simple square tile divided diagonally, white on one side and black on the other. Cyril Stanley Smith popularized the idea in his 1987 paper, The tiling patterns of Sebastian Truchet and the topology of structural hierarchy. Toward the end of that paper, Smith introduces a tile that has become the most popular representative of the idea of Truchet tiles:When that tile is used in random orientations to produce a tiling, the curves join to form connected domains that can be colored alternately white and black, producing an infinity of patterns:I wondered whether that concept could be made to work at multiple scales. If you replace Smith’s two arcs with four arcs that connect with the sides at 1/3 and 2/3, two points in a larger tile connect with points in adjoining smaller tiles:That leaves loose ends along an edge, but in any assembly of tiles you can always connect up the loose ends to form connected domains, as with Smith’s tiles. The winged tile trick gives you the colored domains automatically:
Package
Package
I developed the Wolfram Language package MultiScaleTruchetPatterns.wl to explore these patterns. Download this zip archive, uncompress, open the notebook MultiScaleTruchetPatternExamples.nb in Mathematica or Wolfram Desktop, and evaluate the expressions therein. The package is loaded on the first evaluation (answer “yes” when asked if you want to evaluate the initialization), which may take a while:
Initialization
Initialization
Tiles
Tiles
Start with the set of “winged” tiles shown below. The content of a tile is shown within the dotted lines. “Wings” extend beyond the content area. (The gray background is not part of the tile, but is included so you can see the boundary of the white parts.) Successive tiles in the set are scaled by 1/2, and black and white are swapped at each step. The boundaries between black and white meet the dotted lines at 1/3 and 2/3:
Assemble tiles by adjoining along the dotted lines, letting the wings overlap adjacent tiles. Place smaller tiles on top of larger tiles:
Basic square tile with two connections per side
Basic square tile with two connections per side
In[]:=
Graphics[{{LightGray,Rectangle[-.5{1,1},1.5{1,1}]},SquareArcTile["/"]},ImageSize200]
Out[]=
All named square arc tiles (two connections per side)
All named square arc tiles (two connections per side)
In[]:=
Labeled[Graphics[{{LightGray,Rectangle[-.5{1,1},1.5{1,1}]},SquareArcTile[#]},ImageSize50],#]&/@SquareTileNames[]
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
\ |
/ |
- |
| |
+. |
x. |
+ |
fne |
fsw |
fnw |
fse |
tn |
ts |
te |
tw |
ys |
ye |
yn |
yw |
anw |
ane |
asw |
ase |
p |
All named square rectilinear tiles (two connections per side)
All named square rectilinear tiles (two connections per side)
In[]:=
Labeled[Graphics[{{LightGray,Rectangle[-.5{1,1},1.5{1,1}]},SquareRectilinearTile[#]},ImageSize50],#]&/@SquareTileNames[]
Out[]=
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
\ |
/ |
- |
| |
+. |
x. |
+ |
fne |
fsw |
fnw |
fse |
tn |
ts |
te |
tw |
ys |
ye |
yn |
yw |
anw |
ane |
asw |
ase |
p |
Tilings
Tilings
Tiles can be assembled in lots arrangements, for example, random, regular, or filling arbitrary areas:
Checkerboard tiling
Checkerboard tiling
In[]:=
ShowTiling[CheckerboardTiling[8],{{EdgeForm[Gray],FaceForm[None],Rectangle[]}},ImageSize200]
Out[]=
Surround tiling
Surround tiling
In[]:=
ShowTiling[SurroundTiling[8],{{EdgeForm[Gray],FaceForm[None],Rectangle[]}},ImageSize200]
Out[]=
Offset surround tiling
Offset surround tiling
Random subdivision tiling
Random subdivision tiling
Recursive square subdivision tiling
Recursive square subdivision tiling
Subdivision fill tiling
Subdivision fill tiling
Recursive triangle subdivision tiling
Recursive triangle subdivision tiling
Tiling Patterns
Tiling Patterns
Random subdivision with a single motif
Random subdivision with a single motif
Random subdivision with a single motif randomly rotated
Random subdivision with a single motif randomly rotated
Random subdivision with a multiple motifs
Random subdivision with a multiple motifs
Subdivision fill with randomly chosen motifs
Subdivision fill with randomly chosen motifs
Various single-motif checkerboard tilings
Various single-motif checkerboard tilings
Various multiple-motif checkerboard tilings
Various multiple-motif checkerboard tilings
Various subdivision fills
Various subdivision fills
Various recursive square tilings
Various recursive square tilings
Various recursive triangle tilings
Various recursive triangle tilings
Patterns with rectilinear motifs
Patterns with rectilinear motifs
Exhaustive pattern generation
Exhaustive pattern generation
Generate in a separate notebook every combination of arc motif pairs on a checkerboard tiling.
This takes a while to run, but you can interrupt it at any time.
This takes a while to run, but you can interrupt it at any time.
Bridges Paper Figures
Bridges Paper Figures
Figure 1
Figure 1
Figure 2
Figure 2
Figure 3
Figure 3
Figure 4
Figure 4
Figure 5
Figure 5
Figure 6
Figure 6
Figure 7
Figure 7
Figure 8
Figure 8
Figure 9
Figure 9
Figure 10
Figure 10
Figure 11
Figure 11
Figure 12
Figure 12
Figure 13
Figure 13
Figure 14
Figure 14
Figure 15
Figure 15
Figure 16
Figure 16
Figure 17
Figure 17
End Figure
End Figure
Miscellaneous Additional Topics
Miscellaneous Additional Topics
Square arc motifs with various numbers of connections per side
Square arc motifs with various numbers of connections per side
Pattern with 3 connection points per side (not multi-scale)
Pattern with 3 connection points per side (not multi-scale)
ShowTiling doesn’t work here because the parity works differently with tiles with three connection points.
CITE THIS NOTEBOOK
CITE THIS NOTEBOOK
Discovering Multiscale Truchet Patterns with the Wolfram Language
by Christopher Carlson
Wolfram Community, STAFF PICKS, August 13, 2024
https://community.wolfram.com/groups/-/m/t/3247480
by Christopher Carlson
Wolfram Community, STAFF PICKS, August 13, 2024
https://community.wolfram.com/groups/-/m/t/3247480