A tile covering laid in the interlocking wave paver pattern on the face you give it, with grout between the tiles. The face the tiles cover, Tiles cut at the edge, whole inside, or overlapping, Pattern size, tile thickness and edge bevel, Joint widths and joint depth, Pattern rotation and offset from the face center, Tile and grout colour
Category: Tiles › Wave
By Huu Khanh Nguyen · Updated November 8, 2026
| Name | Default | Unit |
|---|---|---|
| Object On Boundaries | trim | |
| Pattern rotation | 0 | ° |
| Pattern offset X | 0 | mm |
| Pattern offset Y | 0 | mm |
| Lobe radius | 50 | mm |
| Thickness | 10 | mm |
| Edge bevel radius | 0.5 | mm |
| Edge bevel segments | 5 | |
| Horizontal joint | 5 | mm |
| Vertical joint | 5 | mm |
| Joint depth | 5 | mm |
| Generate surface | true | |
| Tile colour | #b8b5ae | |
| Tile roughness | 0.5 | |
| Tile metalness | 0 | |
| Joint colour | #d0d0d0 | |
| patternX | (rings[0].map((p) => p[0]).reduce((m, x) => Math.min(m, x)) + rings[0].map((p) => p[0]).reduce((m, x) => Math.max(m, x))) / 2 + offsetX | mm |
| patternY | (rings[0].map((p) => p[1]).reduce((m, x) => Math.min(m, x)) + rings[0].map((p) => p[1]).reduce((m, x) => Math.max(m, x))) / 2 + offsetY | mm |
| cellX | -([tile0, tile1].flat(1).map((p) => p[0]).reduce((m, x) => Math.min(m, x)) + [tile0, tile1].flat(1).map((p) => p[0]).reduce((m, x) => Math.max(m, x))) / 2 | mm |
| cellY | -([tile0, tile1].flat(1).map((p) => p[1]).reduce((m, x) => Math.min(m, x)) + [tile0, tile1].flat(1).map((p) => p[1]).reduce((m, x) => Math.max(m, x))) / 2 | mm |
| cellReach | [tile0, tile1].flat(1).reduce((m, p) => Math.max(m, Math.abs(p[0] + cellX), Math.abs(p[1] + cellY)), 0) | mm |