NILIN - A RULE-BASED FORM GENERATOR
ITERATIONS COLLECTION:
WE DEFINE 3 RULES:
Rule 1 - Slice
Randomly choose one direction (x, y, z axis, in diagram it is z) and cut through randomly one of the two diagonal lines of each of all rectangles facing in that direction.) (*End condition: until there is no intact rectangles in any direction)
Rule 2 - Slide
Before making the next step of applying rule 1, randomly choose one of the two ways in the previously chosen direction to move one side of the cut pieces in half of the edge length perpendicular to the chosen rectangle.
Rule 3 - Flip reverse
(*Start condition: After termination of rule 1, rule 3 generates.)
Randomly search for one cut piece that has two touching surfaces with rest of the volume. Flip the piece by swapping two tounching surfaces and realign the piece by different ends of the shared edge of touching surfaces.
(*End condition: No pieces unflipped has exactly two touching surfaces.)
PROCEDURAL DRY RUN
APPLYING THE RULES
WE GET A FORMAL TRANSITION FROM A SIMPLE BOX