public void control(MeView me, AgentView[] agents, ThingView[] things) {
        if (things != null)
            throw new Error("internal error: no things yet");
        me.a = 0;
        me.vt = 0;
        AgentView ta = null;
        for (AgentView av : agents) {
            double d2 = dist2(me, av);
            if (d2 < 0.0001)
                continue;
            double tav = Math.atan2(-(av.y - me.y), av.x - me.x);
            if (d2 > 0.04)
                continue;
            if (Math.abs(normalizeAngle(tav)) >= Math.PI/8)
                continue;
            if (ta == null || dist2(me, ta) > d2)
                ta = av;
        }
        if (ta == null) {
            double cx = 0.5 - me.x;
            double cy = 0.5 - me.y;
            double ct = Math.atan2(-cy, cx);
            me.a = 0.1;
            me.vt = me.VTMAX * angleDiff(me.t, ct + Math.PI / 2);
            return;
        }
        double tat = Math.atan2(-(ta.y - me.y), ta.x - me.x);
        double dtt = angleDiff(me.t, tat);
        me.vt = me.VTMAX * dtt;
        me.a = 0.1;
    }