A surgical system, comprising: a surgical device configured to be manipulated by a user to move a surgical tool to perform a surgical procedure on a patient; a computer system programmed to: associate a joint of a patient with a representation of the joint, the joint comprising a first bone and a second bone; collect range of motion data indicating at least one of a position and an orientation of the first bone and the second bone of the joint as the joint is moved through a range of motion; display to a user a representation of the joint based at least in part on the range of motion data collected, together with a representation of an implant model; receive a planned placement of the representation of the implant model from the user; establish a virtual cutting boundary on the representation of the joint based on the planned placement of the representation of the implant model; superimpose a representation of the surgical tool on the representation of the joint; and control the surgical tool to prevent the surgical tool from cutting a portion of the joint outside a boundary that corresponds to the virtual cutting boundary. a surgical device configured to be manipulated by a user to move a surgical tool to perform a surgical procedure on a patient; a computer system programmed to: associate a joint of a patient with a representation of the joint, the joint comprising a first bone and a second bone; collect range of motion data indicating at least one of a position and an orientation of the first bone and the second bone of the joint as the joint is moved through a range of motion; display to a user a representation of the joint based at least in part on the range of motion data collected, together with a representation of an implant model; receive a planned placement of the representation of the implant model from the user; establish a virtual cutting boundary on the representation of the joint based on the planned placement of the representation of the implant model; superimpose a representation of the surgical tool on the representation of the joint; and control the surgical tool to prevent the surgical tool from cutting a portion of the joint outside a boundary that corresponds to the virtual cutting boundary. associate a joint of a patient with a representation of the joint, the joint comprising a first bone and a second bone; collect range of motion data indicating at least one of a position and an orientation of the first bone and the second bone of the joint as the joint is moved through a range of motion; display to a user a representation of the joint based at least in part on the range of motion data collected, together with a representation of an implant model; receive a planned placement of the representation of the implant model from the user; establish a virtual cutting boundary on the representation of the joint based on the planned placement of the representation of the implant model; superimpose a representation of the surgical tool on the representation of the joint; and control the surgical tool to prevent the surgical tool from cutting a portion of the joint outside a boundary that corresponds to the virtual cutting boundary.