Each knot in 3-space gives rise to a family of knots in the solid torus. We associate to each such knot a loop in the space M of all knots in the solid torus. We construct a filtration on the first cohomology of M. Remarkably we can do this without solving any equations. First we recover finite type invariants by applying the filtration to the loops. Next we pass from homology to some refined homotopy and we get new invariants which splitt finite type invariants. The new invariants, called character invariants, are no longer of finite type. However they can be calculated with the same complexity as the underlying finite type invariants. We give an example where we distinguish the orientation of a knot with a character invariant of linear complexity.