e( chain, pose );
    pose.updateWorld();

    chain.bindToPose( pose );
    boneView.updateFromPose( pose );

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    let solver = new LeafFabricSolver();
    let fnIK   = ( pos )=>{
        solver.setTargetPos( pos );
        solver.setEffectorBone( arm.bones[ 2 ].idx );
        solver.resolve( chain, pose, Debug );

        pose.updateWorld();
        boneView.updateFromPose( pose );
    };

    fnIK( Ref.target );

    // ~~~~~~~~~~~~~~~~~~~~~~~~~~