Fractals are easy if you can do the scripting language. The LISP one I wrote works in 3D as easily as 2d. In Autocad you make a block “a"that is the basic shape and then black " b” that contains multiple and smaller scaled block "a"s then using LISP you change the block "a"s into a block “B” just by changing the name in the database. Then you explode all the "b"s and repeat. That is how to do it in Autocad but not sure about other systems.
The Hilbert curve is the ultimate case that in a given array of points it will hit each of them only once and not cross itself. The Hilbert curve is how they compress a long antenna so it fits in a corner of your cell phone