Code Monkey home page Code Monkey logo

aperiodic-monotile's Introduction

The aperiodic monotile in a variety of formats

This repository contains code and vector image files to produce the aperiodic monotiles found by David Smith, Joseph Samuel Myers, Craig S. Kaplan, and Chaim Goodman-Strauss.

There's a family of related shapes, each made of 14 edges (though two of the edges are parallel and adjacent so look like a single long edge). Each edge is one of two lengths, 𝑎 or 𝑏. The angles in the shape don't change. There is an interactive tool to draw the tiles with any choice of the parameters and download in SVG or PNG format.

There are three interesting monotiles, which each tile the plane aperiodically.

A 'hat':

A hat-like polygon

A 'turtle':

A turtle-like polygon

And a 'spectre':

A ghost-like shape with curved edges

Each file produces a single copy of the tile. Several copies of the tile fit together to tile the plane:

  • The 'hat' monotile can tile the plane together with its reflection.
  • The 'turtle' monotile can also tile the plane with its reflection. (It and the hat are two of a family of polygons that tile the plane in the same way.)
  • The 'spectre' monotile, with curved edges, can tile the plane only without its reflection. (The spectre with straight edges is related to both the hat and turtle, but it can tile the plane periodically and aperiodically. An aperiodic tiling can be forced by forbidding reflections—which is effectively what curving the edges accomplishes.)

The files are:

Hat tile

  • hat-monotile.svg - A vector graphics file for use in programs such as Inkscape or Adobe Illustrator.
  • hat-monotile-kites.svg - A vector graphics file showing the construction of each tile from kites.
  • hat-monotile.scad - Code to produce the tile in OpenSCAD, for 3D printing.
  • hat-monotile.stl - An STL file produced using the OpenSCAD code, which can be sent directly to a 3D printer, or manipulated in other 3D software.
  • hat-monotile.logo - A LOGO script to draw the outline of the title with Turtle graphics.
  • hat-monotile.dxf - A DXF vector file, used by some CAD tools. Created by Adam Greenblatt.

Turtle tile

Spectre tile

aperiodic-monotile's People

Contributors

christianp avatar davidmichaelroberts avatar julescubtree avatar mattneub avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aperiodic-monotile's Issues

SVG files for lattices with more than one tiles

Thank you for sharing these nice results.
I am trying to extract the coordinates and edges of monotiles using SVG files.

Although my attempts to use the SVG files generated from here were not successful, finding the coordinates of points in your SVG files was easy with my code.

I wondered whether you plan to extend your SVG file to systems with many tiles. This certainly will help those like me who are trying to use these files in other codes.

Replace the a and b sliders with a single slider

so we can traverse the continuum more easily. Call the value of the single slider x and have it vary from -1 to +1. Then a = (1+x)/(1-x) and b = 1/a. The detents will be at x = -1, √3-2, 0, 2-√3, 1.

Allowing negative curve amplitudes

Thanks for this great tool. I would love to be able to see what the spectre looks like with the curves going the other way (i.e. going in where they used to go out and vice versa). It would also be great if we could choose an integer number of half-waves per side, say from 1 to 4) (currently fixed at 2). And fun if we could choose other waveforms besides sine, such as triangle and square, or trapezoid.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.