A method comprising: providing, by a server with a processor to at least two user devices via a computer network, respective user interfaces displaying a three-dimensional model of a consumer product selected by at least one user of a plurality of users, the 3D model including a plurality of elements; simultaneously enabling selection, in a first user interface on a first user device by a first user of the plurality of users, of a first element of the 3D model for customisation and enabling selection, in a second user interface on a second user device by a second user of the plurality of users, of a second element of the 3D model for customisation; responsive to the selection, locking selection and customisation of the first element of the 3D model from any user other than the first user of the plurality of users and locking selection and customization of the second element of the 3D model from any user other than the second user of the plurality of users; customising, by the server, the 3D model of the consumer product based on selections of elements of the 3D model of the consumer product received at the provided user interface from at least two users of the plurality of users and manipulations of the elements of the 3D model of the consumer product received at the provided user interface from the at least two users of the plurality of users, the manipulations of the elements of the 3D model of the consumer product sent to the server; and responsive to finalization of the customised 3D model by at least one of the plurality of users, submitting, by the server, the customised 3D model for 3D printing. providing, by a server with a processor to at least two user devices via a computer network, respective user interfaces displaying a three-dimensional model of a consumer product selected by at least one user of a plurality of users, the 3D model including a plurality of elements; simultaneously enabling selection, in a first user interface on a first user device by a first user of the plurality of users, of a first element of the 3D model for customisation and enabling selection, in a second user interface on a second user device by a second user of the plurality of users, of a second element of the 3D model for customisation; responsive to the selection, locking selection and customisation of the first element of the 3D model from any user other than the first user of the plurality of users and locking selection and customization of the second element of the 3D model from any user other than the second user of the plurality of users; customising, by the server, the 3D model of the consumer product based on selections of elements of the 3D model of the consumer product received at the provided user interface from at least two users of the plurality of users and manipulations of the elements of the 3D model of the consumer product received at the provided user interface from the at least two users of the plurality of users, the manipulations of the elements of the 3D model of the consumer product sent to the server; and responsive to finalization of the customised 3D model by at least one of the plurality of users, submitting, by the server, the customised 3D model for 3D printing.