We describe and evaluate a greedy detection-based algorithm for tracking a variable number of dynamic targets online. The algorithm leverages the well-known iterative closest point (ICP) algorithm for aligning target models with target detections. The approach differs from trackers that seek globally optimal solutions because it treats the problem as a set of individual tracking problems. The method works for multiple targets by sequentially matching models to detections, and then removing detections from further consideration once models have been matched to them. This allows targets to pass close to one another with reduced risks of tracking failure due to “hijacking,'' or track merging. There has been significant previous work in this area, but we believe our approach addresses a number of tracking problems simultaneously that have only been addressed separately before. The algorithm is evaluated using four to eight laser range finders in three settings: quantitatively for a basketball game with 10 people and a 25-person social behavior experiment, and qualitatively for a full-scale soccer game. We also provide qualitative results using video to track ants in a captive habitat. During all the experiments, agents enter and leave the scene, so the number of targets to track varies with time. With eight laser range finders running, the system can locate and track targets at sensor frame rate 37.5 Hz on commodity computing hardware. Our evaluation shows that the tracking system correctly detects each track over 98% of the time.