A computer-implemented method of engineering autonomous system with reusable skills, the method comprising: displaying a graphical user interface simulating a physical environment, wherein the graphical user interface depicts one or more simulated objects corresponding to physical objects; creating one or more graphical markers (310, 320, 330, 340) on the one or more simulated objects based on instructions provided by a user via the graphical user interface; determining position and orientation of each graphical marker with respect to the one or more simulated objects; and creating a skill function comprising a functional description for using a controllable physical device to interact with the physical objects based on the position and orientation of each graphical marker; generating executable code operable to perform the skill function; characterized by: generating a plurality of process objects comprising (i) one or more process objects corresponding to the physical objects; (ii) one or more process objects corresponding to the controllable physical device; (iii) one or more process objects corresponding to the graphical markers (310, 320, 330, 340); and (iv) one or more process objects corresponding to the skill function; and actuating the controllable physical device using the executable code; wherein (i) the one or more process objects corresponding to the controllable physical device comprise a device object and a plurality of sub-objects organized in an owner part hierarchy and (ii) the executable code traverses the owner part hierarchy to actuate the controllable physical device, wherein the owner-part hierarchy is a grouping mechanism used to aggregate the device object with sub-objects that provide more specific information about its function; wherein (i) the device object and the plurality of sub-objects are linked using connections corresponding to kinematic function and (ii) the executable code uses the connections to actuate the controllable physical device. displaying a graphical user interface simulating a physical environment, wherein the graphical user interface depicts one or more simulated objects corresponding to physical objects; creating one or more graphical markers (310, 320, 330, 340) on the one or more simulated objects based on instructions provided by a user via the graphical user interface; determining position and orientation of each graphical marker with respect to the one or more simulated objects; and creating a skill function comprising a functional description for using a controllable physical device to interact with the physical objects based on the position and orientation of each graphical marker; generating executable code operable to perform the skill function; characterized by: generating a plurality of process objects comprising (i) one or more process objects corresponding to the physical objects; (ii) one or more process objects corresponding to the controllable physical device; (iii) one or more process objects corresponding to the graphical markers (310, 320, 330, 340); and (iv) one or more process objects corresponding to the skill function; and actuating the controllable physical device using the executable code; wherein (i) the one or more process objects corresponding to the controllable physical device comprise a device object and a plurality of sub-objects organized in an owner part hierarchy and (ii) the executable code traverses the owner part hierarchy to actuate the controllable physical device, wherein the owner-part hierarchy is a grouping mechanism used to aggregate the device object with sub-objects that provide more specific information about its function; wherein (i) the device object and the plurality of sub-objects are linked using connections corresponding to kinematic function and (ii) the executable code uses the connections to actuate the controllable physical device. generating a plurality of process objects comprising (i) one or more process objects corresponding to the physical objects; (ii) one or more process objects corresponding to the controllable physical device; (iii) one or more process objects corresponding to the graphical markers (310, 320, 330, 340); and (iv) one or more process objects corresponding to the skill function; and actuating the controllable physical device using the executable code; wherein (i) the one or more process objects corresponding to the controllable physical device comprise a device object and a plurality of sub-objects organized in an owner part hierarchy and (ii) the executable code traverses the owner part hierarchy to actuate the controllable physical device, wherein the owner-part hierarchy is a grouping mechanism used to aggregate the device object with sub-objects that provide more specific information about its function; wherein (i) the device object and the plurality of sub-objects are linked using connections corresponding to kinematic function and (ii) the executable code uses the connections to actuate the controllable physical device.