Tiling script

I worked up a script to do some complex tiling. It’s still very beta, but usable. The script is included in the example file, as well as below. It makes clones of the selected object and tiles them. At this point it’s just presets(and the first few aren’t even that useful), but I’m sure it could be converted to parameters pretty easily. The idea is to allow the user to tile objects easily in complex ways (useful for tesselations, flooring, etc).
I’d like it to check a “boundary” object and only place tiles within the bounds, for paving irregular areas. What is an elegant way to do this?
Example file:



EDIT: axed the code window, current version available for download as above.

From the examples you show, this looks like a very very nice project…
Unfortunately it is a bit difficult to see what it’ll look like just looking at the code. Why don’t you make a nice GUI for it ?
Well done ! I wish you’d continue to work on it and make it more User-friendly !

Added a GUI! All current features are accessable in the GUI and there is a very handy presets menu to select presets which will result in pretty tilings.
Copy the file to the scripts folder:
“Python Window” Scripts->Object->Auto Tile
Also updated the example file, so you can see what each tiling does more clearly. The tiling presets and examples are drawn closely from a book, “Divine Geometry” which has a great tiling reference in the back.

I’m thinking of turning this into a modifier very much like “array” and “mirror” (IE, with a merge limit). Can this be done in Python, or would I need to get into the C code?

great work again!
I think as far as modifier stack goes you would need to talk to jms or Ideasman (cambo) as they are two of the best python coders, also involved in api changes & c++ hardcoding.

You should add bounderies and boundery effects, then it’ll be way more useful, you should also have an option to attempt to cover a surface with it (like curves and hills)

Version 0.2 is up. I added boundary sensing, just type in the name of the boundary object and it will be filled (in the local x-y plane). It currently only fills meshes and closed curves, as I figured there wouldn’t be much demand for other types of boundaries.
I fiddeled around with ways to make the tiles fit to a surface. Using a Lattice deformer and then tweaking the lattice seems to be the best way at present. I may add an automatic lattice deformer in the future, though manual manipulation will still be required.

The GUI may look formidable, but personally I only use the presets, and rarely fiddle with the buttons.

Example of how the boundary object works. The boundary is rendered in wireframe mode so you can see the tiles, but the faces are filled. It will also fill a closed curve object.

Also very handy for making tesselations, this is the “Square 2” setting. Look familiar?

Hey, very nice script!!
I particularely like that the copies making up the tiling are still linked so you can ‘tweak’ your tiling. This makes it a lot easier to do Escher like tilings…
I would prefer either a more descriptive name (or tooltip) for each of the presets (Square 1-10 make it hard to remeber which was which…
That’s 2 VERY nice scripts in a short time. I just hope you can work on them both a bit further…

Great stuff dudecon, this can be very useful!

Thanks for all the support guys!
Okay, V0.3 is up. http://www.peripheralarbor.com/Auto_Tile.py
I added short preset descriptions to the menu and a lattice deform option. This way you can use the lattice to deform the whole set of tiles so there aren’t problems with mismatched edges. It doesn’t automatically match the lattice to the target boundary, but I figured you’d need to tweak it anyhow, and once you have the lattice deforming it is pretty easy.

Dude, I love your scripts.

/ Mats

Hi, Should this work with 2.64 I? I’m getting an error message “Source File is in the Addon Search Path” when I try to install it. Thanks!