My goal with this experiment was to create a procedurally tiling floor where each tile is unique.
After messing around for a while, this is what I came up with:
I was really pleased, until I realized I have no idea how to make this tileable/repeatable. I found this post, but those solutions didn't work (or I failed to properly implement them). I tried to find out how to recreate the Brick Texture node from scratch because I think that would probably answer my questions, but this was really all I could find.
I was even less pleased with my work when I started inserting my marble texture into the material and realized it wasn't going to work. I tweaked some things and this is what I came up with:
My end goal is creating a procedural texture where tile shapes are created by a voronoi texture node and each tile has a different "seed". Is there a way to do this? I imagined using colors values from the voronoi node to provide the value that seeds each marble tile, but I can't figure out how to actually do that.
This is as far as I've been able to get (it doesn't tile and I'm pretty sure each tile's texture is static). Any help and/or feedback would be very much appreciated. Thanks in advance!
EDIT: Updated node tree. Still doesn't do what I want, but at least it's prettier...
UPDATE: Thanks for the help! I spent a few more hours cleaning up the shader and adding a bunch of input sliders. These are the "final" results. The textures, tiles, tile shapes, grout thickness, and seed are fully procedural! The grout is pretty bad, but it's 7AM and I'm going to sleep.
Updated Blender file: