mg.metric geometry – Monotile that tiles when you apply a rubber band

My (non-mathematician) friend asked me a physics/tilings question that maybe someone here is interested in dissecting, or can point to the literature if this problem has been studied.

Does there exist a tile such that when you put a bunch of copies of it on a table and push from all sides, they always form a tiling?

My friend illustrated with physical (uniform density) lozenge tiles that they do not have this property, by throwing some on the table, and pushing them together. More specifically this suggests the stronger property that a typical initial configuration will get stuck. The tiles this was demonstrated on had positive friction.

The informal question as stated is a bit ambiguous. I am not going to try to formalize the physics of the problem, but I’ll at least try to specify how the force is applied in a hopefully unambiguous (but somewhat arbitrary) way. You can suggest a better variant in the same spirit if e.g. it’s easier to solve or mine misses the point for a “stupid” reason.

Let’s say a tile is a nice enough subset $P subset mathbb{R}^2$, you can pick what that means. E.g. if going for a negative answer, you can choose something like “simply connected convex polygon”. If going for a positive answer, I could imagine something like piecewise smooth being helpful. (For physics considerations it’s a zero friction rigid body, and let’s say of uniform density.)

Let $G = mathbb{R}^2 rtimes S^1$ be the rototranslation group (so no flips), which acts on $mathbb{R}^2$ from the left. A partial tiling is a subset of $T subset G$ such that the interiors of $t cdot P$ for distinct $t in T$ are disjoint. We say a partial tiling $T$ fills $C subset mathbb{R}^2$ if $T cdot P supset C$.

A jam is a finite partial tiling $T subset G$ such that, assuming the tiles have zero friction and behave according to physics, if you stretch a rubber band around the convex hull of $T cdot P = bigcup_{t in T} {t cdot P}$, the tiles will not budge. Intuitively, jams always exist aplenty, just put some tiles on the table, stretch the band around them and let go (if there’s a third dimension available there’s a problem with that strategy, but you see what I mean).

Definition. A tile $P$ is a rubber band monotile if all $r > 0$, there exists $R > 0$ such that every jam whose convex hull contains the ball of radius $R$ fills a ball of radius $r$?

Observe that any rubber band monotile admits a partial tiling that fills the entire plane. In usual terminology, $P$ tiles the plane under rototranslations, and such $P$ is sometimes called a monotile.

In case this question is non-trivial, here’s some starters:

Is the equilateral (or any) triangle a rubber band monotile? Is the square (or any other rhombus, e.g. the lozenge)? Is the hexagon? Any of the pentagon monotiles?

I’m also interested in higher dimensions of course (my friend may or may not be). In one dimension I was able to solve the problem myself.

lighting – Why are 2D game tiles often lit from the top left?

I have been in to game programming for some time now, and recently ventured out in to trying to create my own pixel art. So I have learned the basics of lighting and shading etc. and noticed that several games will light their tiles from the top left. Such as Super Metroid and Axiom Verge highlighted in red here:

Super Metroid Screenshot

enter image description here

I assume because there is no distinct light source, one was chosen and consistently applied everywhere where possible?

Why does it tend to be the top left, is it to do with westerners reading left to right, top to bottom perhaps?

And bonus question, what is the reason behind the opposite side shading shown in the blue circle in Axiom Verge?

seed – How many letter tiles does one need to build any 24 word mnemonic?

One of the popular cold storage wallets provides double-sided tiles for users to put in the first four letters of each of their 24 words (96 characters total).

They include ~245 double sided tiles, plus some blanks.

By my math on the BIP39 wordlist, they should need to provide ~485 double sided tiles to provide for every valid 24 word mnemonic.

I simply calculated, for each letter, the worst case 24 word combination, then added up how many of each letter I would need, then divided by 2 since the tiles are double sided.

Is there something I’m missing here?


EDIT I have found at least one flaw in my reasoning. The last word is a checksum, so not entirely random. But accounting for this only saves us 33 letter tiles!

java – How do I move the tiles on the board with the keyboard?

Help, I need to create a quoridor in Java, but everything has to be in the same code. I want to know how I can do this so that the * and + tabs can be moved by entering the keyboard coordinates where you want to be. It remains to be clarified whether this is the case alternately and can only move one box up, down, right or left. I have tried and searched a lot and there is no information or help about it and I have.Matrix program

Unit – How to fix pink tiles if there is a problem with the shader?

I did it because of a stupid mistake fifth I had to repaint my level in my 2D game.
The problem is that the tiles I use are from the Tile Palette turns pink due to a shader error. I came to this conclusion after long browsing the forums.

I am 100% sure that this will happen again because I don't know what causes this behavior. Prevention is not an option for me.
What is the solution?

At the suggestion of @ DMGregory, I was able to emulate my stupid behavior in an empty project.
I drag and drop a tile set onto a tile palette I'm using, and then Overwrite the current tile palette. Then the previous assets are lost (I think?) And leave me with pink tiles.

The attached image is one of my layers that I created with Tile Palette. How do I take it back? I don't want to repaint my level every time I do something that causes this behavior.
Enter the image description here

geometric constructions – domino tiles made up of space-filling curves, is it possible to predict something?

Periodic and aperiodic Domino tile systems can be obtained by the following construction rules:

  1. Draw a regular square grid n × n of n2nd Cells.

  2. Draw a space-filling curve path through the center of the square cells, also using the curve as an index I for each cell.

  3. Merge adjacent cells to get an index domino j= Floor (i / 2).


Enter the image description here

In the case of domino tile problems, the relative orientation of the domino to its neighbor is important …
Is there any way to predict the basic properties of domino tiles?
That means for every space-filling curve:

  • Predicting the type of periodic or aperiodic tile system;
  • Predicate the proportion of dominoes that will be aligned differently.


Illustrate with more dominoes from the same degenerate curves.

Enter the image description here

Through empirical induction we can assume that for everyone n::

  • The Morton curve generated periodic domino tiles, all dominoes in the same orientation.
  • The Hilbet curve produced aperiodic domino tiles, 50% of the dominoes in a horizontal orientation and 50% in a vertical orientation.

dnd 5e – How can a BBEG activate or deactivate anti-magic tiles in its turn?

Consider making the tile manipulation a hiding action.

Hide-and-seek actions are a different method than legendary actions to give a monster opportunities to balance the action economy between himself and the group of players. They usually refer to changing or using the terrain of their hiding place and can only be carried out by the monster (or NPC) when they are in their hiding place. You mentioned that the party will face this BBEG in hiding, so it would make sense here. The advantage of making the anti-magic tile manipulation a hiding action is that the BBEG continues to make full use of its action, bonus action and object interaction on its turn and does not have to waste any of them.

As an example, an ancient red dragon has the following hide-and-seek options and chooses one to run at initiative count 20 (loss of initiative ties) each round.

  • Magma breaks out at a point on the ground that the dragon can see within 120
    Feet of it, creating a 20 foot geyser with a 5 foot radius. Everyone
    A creature in the Geysir area must achieve DC 15 skill savings
    Throw and take 21 (6d6) fire damage from a failed save or half as much
    Damage to a successful.
  • A tremor shook the cave in a 60-foot
    Radius around the kite. Any creature other than the dragon on the
    Soil in this area must be on a DC 15 skill save or successful
    to be knocked lying down.
  • Volcanic gases form a cloud within a 20 foot radius
    Sphere centered on a point the dragon can see within 120 feet.
    The ball spreads around corners and its area is slightly covered.
    It takes initiative 20 to count in the next round. Any creature
    That begins its turn in the cloud must be successful on a DC 13 constitution
    Rescue throw or be poisoned until the end of his turn. While poisoned
    That way, a creature is disabled.

Knowing that your BBEG should manipulate the anti-magic tiles every round, you can easily limit them to one option for their hiding action: manipulate the tiles as you like.

How can you repeat 2D tiles in Java code when you are out of range?

I'm looking for tutorials on how to create 2D games and can easily copy and paste their code, but I'd rather know what that means and how to do it.

Suppose you have a 2D game window with a card width of 64. How do you actually repeat the tiles when you are out of range when scrolling?

Which line of code actually allows the game to repeat the tiles when you are out of range with this rendering method?

I notice this line from the following code:

int tileIndex = (xTile &(MAP_WIDTH_MASK)) + (yTile &(MAP_WIDTH_MASK))* MAP_WIDTH;

Since this line specifies the X and Y coordinates of the tile you are on, it appears that the bitwise & operator repeats the tiles. Please correct me if I am wrong and also explain to me what the & operator is doing.

Code example:

 public static final int MAP_WIDTH= 64;
 public static final int MAP_WIDTH_MASK= MAP_WIDTH - 1;
 public static final int PIXEL_SIZE= 8;
 public static final int PIXEL_SIZE_MASK= MAP_WIDTH - 1;
 public int() tiles = new int(MAP_WIDTH*MAP_WIDTH);
 public int() colours = new int(MAP_WIDTH*MAP_WIDTH*4);
 public int xOffset = 0;
 public int yOffset = 0;

 public void render(int() pixels, int offset, int row) {
        for(int yTile = (0 + yOffset) >> 3; yTile<=(height + yOffset) >> 3; yTile++) { 
            int yMin = (yTile * PIXEL_SIZE) - yOffset; 
            int yMax = yMin + PIXEL_SIZE; 
            if (yMin<0) yMin=0;
            if (yMax>height) yMax = height; 
            for(int xTile = (0 + xOffset) >> 3; xTile<=(width + xOffset) >> 3; xTile++) {
                int xMin = (xTile * PIXEL_SIZE) - xOffset;
                int xMax = xMin + PIXEL_SIZE;
                if(xMin<0) xMin=0;
                if (xMax>width) xMax = width;
                int tileIndex = (xTile &(MAP_WIDTH_MASK)) + (yTile &(MAP_WIDTH_MASK))* MAP_WIDTH;
                for (int y = yMin; y < yMax; y++){
                    int sheetPixel = ((y + yOffset) & PIXEL_SIZE_MASK)*sheet.width + ((xMin + xOffset)& PIXEL_SIZE_MASK);
                    int tilePixel = offset + xMin + y * row;
                    for(int x = xMin; x< xMax; x++) {
                        int colour = tileIndex * 4 + sheet.pixels(sheetPixel++);
                        pixels(tilePixel++) = colours(colour);