VSFCF  CVM 1.1 
where * represents complex conjugation of the immediately preceding number. Furthermore, by standard facts (essentially the Contraction Mapping Theorem) about iterated function systems (see [Ba, p. 82] ), if we start with any compact set in the plane and take the union of all possible applications of n of these functions (with repetitions), as n increases the image will converge (in Hausdorff distance) to the image of the Hilbert curve (the filled in unit square). By being more careful about how we apply these functions, we can, with certain restrictions, get a large family of curves that converge as functions (not just their images) to the Hilbert curve. As described by Sagan ([Sag, p. 23]), starting with any curve g with initial point 0 and terminal point 1 we can build curves using the f_{k} that converge uniformly to the Hilbert curve. Namely, for the nth approximation, cut the unit interval into 4^{n} congruent segments. Map the kth subinterval, k=0,1,...,4^{n1}, where k=a_{1}a_{2}...a_{n} base 4 (leading a_{j}'s may be 0) by the composition f_{a1} f_{a2}···f_{an}g following a direct linear stretching of the subinterval to the full unit interval. In Figure 4 we show the first four images of maps approximating the Hilbert curve based on a fairly arbitrary map of the unit interval from 0 to 1 (g(x)=xi x^{2}(1x)sin(2p x)/4).
Figure 4. The graph of g and the first three iterations of the Hilbert IFS applied to the graph. Also available is an animation (131kb) with the first 8 iterations and a speed controlled applet. In any case, one gets a discrete jerky animation, much like Figure 1. Use the browser back button to return. Source code is available.
We generalize this construction to any starting curve so as to include Hilbert's original curve by adding appropriate connecting segments. Let g be any continuous curve from the unit interval to the plane. For each natural number n divide the unit segment [0,1] into alternating segments of nonnegative lengths b_{n} and c_{n} so that there are 4^{n} segments of length b_{n} and 4^{n}1 of length c_{n}. (We only allow c_{n} to be zero in the case when g has initial point 0 and terminal point 1. In fact, this choice will just give us the previous case.) On the segments of length b_{n} we proceed as before: for the kth such interval (k starts counting at 0) we map the interval linearly and directly onto the unit interval, follow this by the given function g, and then follow this by the element of the IFS corresponding to k; namely for k= a_{1}a_{2}a_{3}...a_{n} base 4 we follow g by the composition f_{a1} f_{a2} f_{a3}···f_{an}. On the kth intermediate, length c_{n} interval, we use the linear map that connects the terminal point of the function now defined on the kth length b_{n} interval to the initial point of the function now defined on the (k+1)st length b_{n} interval. By choosing g to be the constant map to the center of the unit square (g(x)=(1+i)/2) and all b_{n}=0 we get exactly Hilbert's original definition of approximating curves as drawn in Figure 1. However, we now have the following:
Theorem. For any choices above of g, b_{n}, and c_{n}, with the IFS constructed as indicated, the limiting function will be precisely the classical Hilbert curve (even though the intermediate approximating curves will usually be different from the classical approximating curves).
Proof. The four IFS functions for the Hilbert curve have the property that if a_{1}a_{2}··· a_{n} and a'_{1}a'_{2}··· a'_{n} are base four expansions of consecutive whole numbers, then F=f_{a1} f_{a2}··· f_{an} and F'=f_{a'1} f_{a'2}··· f_{a'n} map the unit square to adjacent squares of side length 1/2^{n}. Let X be a disk of width (diameter) W that contains the unit square and the graph of g. Then any points of F(X) and F'(X) are inside a single disk, Z, of width W/2^{n1} since each function shrinks by a factor of 1/2^{n} and this gives us two meeting disks each of width W/2^{n}. Now for a given n, we have two different approximations of the Hilbert curve: the classical nth approximation and the general version we've been considering. Fix any x in the unit interval. In the classical approximation, we have all b_{n} = 0 and x is in say the kth subinterval of length c_{n}. Let a_{1}a_{2}··· a_{n} be the base four expansion of k, defining F and F' as above. The classical nth approximation maps the endpoints of this interval to F((1+i)/2) and F'((1+i)/2). In particular, they are mapped into Z and the whole interval of length c_{n} (including x) will be mapped to the interval connecting them. Since Z is convex, we have x mapped into Z by the classical nth approximation to Hilbert's curve.
In the generalized approximation, x will lie in either the kth or (k+1)st interval of length b_{n} or in the kth interval of length c_{n}. In the first two cases, we map x into the unit interval when we stretch the interval of length b_{n}, then map it into X with g, and then apply either F or F' depending which of the two cases we're in. So x is mapped into Z. If x is in the kth interval of length c_{n}, then it is mapped into a line segment in Z and so lies in Z in this case too.
Thus both approximations are within W/2^{n1} of each other, and since the classical one converges to the Hilbert curve as n goes to infinity, the generalized one must also.
We now vary our four IFS functions. We'll let h_{k} be f_{k} followed by a homothetic shrinking toward the corner that's the fixed point of f_{k}. More precisely:
which reduces to the definition of the f_{k} in (2) for s=1/2. For s strictly between 0 and 1/2 the attractor of the IFS defined by the four h_{k} functions will be a Cantor set of similarity dimension 1/log_{4}s as follows. For fixed s between 0 and 1/2, let C_{0} be the unit square region. Let C_{1} be the union of the four square regions of side length s in each corner of C_{0} and continue in this way. Alternatively, C_{m+1} is just the union of the four sets h_{k}(C_{m}) for k=0,1,2,3. Then the intersection of the nested C_{m} will be a Cantor set that is the attractor of the IFS defined by the h_{k}. (This is a common situation with IFS's. If we can find a compact set such that the IFS function images are pairwise disjoint subsets of it, then this type of intersection will be the attractor.) Note that this intersection is clearly not empty; for example the corner points at any stage will all be in the intersection. Now this attractor (see Figure 5) is self similar to four smaller copies with ratio s. So the selfsimilar dimension, D, satisfies 4s^{D}=1 and so D=1/log_{4}s.
The attractor of the IFS defined by {h_{0}, h_{1}, h_{2}, h_{3}} will be a Cantor set that is itself the Cartesian product of two Cantor sets that are produced by deleting the open middle (12s) part of each interval in each stage of the construction. This is shown in Figure 5 where on the left we have s=1/3 (standard middle third Cantor set) and on the right s=2/5 (middle fifth deleted). Apparent nonsimilarity arises from "pixel round off error"  since we must draw or omit complete pixels at each stage (see Section 12 for a discussion).
Figure 5. Frames corresponding to s=1/3 and s=2/5 in 16 frame animation of Cartesian product of Cantor sets. The extreme cases, s=0,1/2 are produced by the same algorithm, but are not Cantor sets. Also available is an animation (84kb) and a speed controlled version. Use the browser back button to return. Source code is available.Thus, as s varies from 0 to 1/2 the Cantor set attractor varies in dimension from 0 to 2. We can make this Cantor set into a curve by adding in connecting segments as in Figure 6. This will increase the dimension to 1 for s<1/4 and won't change the dimension for other values of s. (This figure is different but reminiscent of the figure on page 194 of [Ed]. There are also some similarities to the figures in Wang and Li ([WL]).)
Figure 6. Frames 10 and 15 of 20 in animation of curves of increasing dimension to Hilbert curve. Also available is a full big animation (202kb) and a speed controlled version; use the browser back button to return. Source code is available.

