ray: ($: Ray, delta) => {
            delta = __asVec(delta);
            return new Ray(
                mul2([], $.pos, delta),
                normalize2(null, mul2([], $.dir, delta)),