We propose a technique to simultaneously estimate the local fiber orientations and perform multi-fiber tractography. Existing techniques estimate the local fiber orientation at each voxel independently so there is no running knowledge of confidence in the measured signal or estimated fiber orientation. Further, to overcome noise, many algorithms use a filter as a post-processing step to obtain a smooth trajectory. We formulate fiber tracking as causal estimation: at each step of tracing the fiber, the current estimate of the signal is guided by the previous. To do this, we model the signal as a discrete mixture of Watson directional functions and perform tractography within a filtering framework. Starting from a seed point, each fiber is traced to its termination using an unscented Kalman filter to simultaneously fit the signal and propagate in the most consistent direction. Despite the presence of noise and uncertainty, this provides an accurate estimate of the local structure at each point along the fiber. We choose the Watson function since it provides a compact representation of the signal parameterized by the principal diffusion direction and a scaling parameter describing anisotropy, and also allows analytic reconstruction of the oriented diffusion function from those parameters. Using a mixture of two and three components (corresponding to two-fiber and three-fiber models) we demonstrate in synthetic experiments that this approach reduces signal reconstruction error and significantly improves the angular resolution at crossings and branchings. In vivo experiments examine the corpus callosum and internal capsule and confirm the ability to trace through regions known to contain such crossing and branching while providing inherent path regularization.