Here some of contents (translated into English as good I can):
There are 4 types of elementary symmetries:
- movement
- rotation
- mirroring
- slide-mirroring (?) - this is a mirroring with a following movement in the direction of axis of reflection
There are 17 ornament groups, which follow from the possible combinations of symmetries. They have names, like P1, Pm, C4 (used in crystallography) and a orbifold symbol (which is used by mathematicans) like 3*3, 0, ** or *x.
Then for quadratic tiles (which factorio uses in general) we have some special rules: every tile is a copy or mirror of the original. Then we have 14 possible ways of combining them, or 31, if we also allow the rotation of the original tile.
There are 3 mirror groups, which you can see in a kaleidoscope and which also can be seen in the above examples. The sum of the angles must be 180 degrees: 60,60,60 (P3m1), 90,45,45 (P4m) and 90,60,30 (P6m).
There are more operations like stretching, but that's not important for factorio.
Why I'm writing that? Well, if we could implement the mathematics behind that into placing repeated numbers of the blueprints, then we can create things like above automatically.
What's needed?
- definition of a blueprint
- original placement of first blueprint and how it is rotated or mirrored.
- one of the 17 (14?) orbifold symbols to define the type or repetition
- a statement/function for stoping the process (is there water, forest?)
- a statement/function for continuing (is there copper? Is the previous built up complete?)
- a mechanism to request the needed items for that
- a "flying" roboport
![Smile :)](./images/smilies/icon_e_smile.gif)
- some physical instance, which creates ghost buildings from the blueprints by the given rules.
- optional: rules/functions what has to be done before placing (e. g. Deconstruct all) and after (cut power connection on that pole). And rules, which allow to change the blueprint ... or the whole program.
I think some (not all) of the above mentioned is essentially important to create self replicating structures. And what wonderfully would it look to generate big structures just from a simple blueprint and some rules?