
The fly's oldest trick.
Track follows a chosen object through a video with the connectome's motion detectors: no class labels, no re-detection, just a point and a velocity, every frame.
Elementary motion detectors in the optic lobe are the best-understood circuit in the fly. Track exposes them: give it a point, and the brain keeps its gaze on it through occlusion and camera motion.
Tracks through occlusion at 120 fps.
Track runs at 120 fps on a laptop and keeps 0.78 AUC on LaSOT, with no per-object model and a 3 MB adapter.
target Figures marked "target" are design targets for the first release, not measurements.
Same brain, its own wiring.
Input adapters occupy afferent regions, output adapters read efferent ones. Co-processors feed in through the embedding port.
- FlyCore v0.1.0
- weights v0.1.0-beta
- frames (compound eye)
- seed point
- point, velocity
- none
import flycore
brain = flycore.load("flylabs/track") # engine + weights + adapters
tracker = brain.seed(frame0, point=(410, 220))
for frame in video:
p, v = tracker(frame)
# p -> (x, y); v -> (vx, vy) px/sFollow anything that moves.
Camera follow and auto-framing
Keep the subject centred in a video call or a sports stream.
Sports and lab analytics
Trajectories of balls, animals or cells, with no labelling.
- Single object per instance; run several for several.
- Beta: optic-lobe subnet only, not the full connectome.