A tangible non-transitory computer-readable medium storing instructions for collaborative three-dimensional modeling in a browser application (50; 120; 270; 310) that executes on one or more processors of a first computing device (12; 252; 502), characterized in that the instructions comprise: a browser interface module that executes on the one or more processors to receive user commands from the browser application (50; 120; 270; 310) for modifying a 3D model and cause a rendering of the 3D model to be displayed in a window controlled by the browser application (50; 120; 270; 310), wherein the 3D model includes model data (24; 54; 274) having a plurality of components , each component having a plurality of elements ; a modeling engine module (52; 130; 272; 312) that executes on the one or more processors to interpret model data (24; 54; 274) corresponding to the 3D model to generate the rendering of the 3D model , and modify the model data (24; 54; 274) in accordance with the received user commands; and a collaboration module (52; 134; 272) that executes on the one or more processors to cause the modified 3D model to be synchronized in real time between the first computing (12; 252; 502) and a second computing device (14; 254; 504) at which the 3D model is being concurrently developed, wherein to cause the modified 3D model to be synchronized between the first computing (12; 252; 502) and the second computing device (14; 254; 504), the collaboration module (52; 134; 272) generates a serialized representation of a model component , generates a description of a modification specified relative to elements of said serialized representation of the model component , and provides the description of the modification to the browser interface module , and wherein the first computing device (12; 252; 502) and the second computing device (14; 254; 504) operate independently of each other on a communication network . a browser interface module that executes on the one or more processors to receive user commands from the browser application (50; 120; 270; 310) for modifying a 3D model and cause a rendering of the 3D model to be displayed in a window controlled by the browser application (50; 120; 270; 310), wherein the 3D model includes model data (24; 54; 274) having a plurality of components , each component having a plurality of elements ; a modeling engine module (52; 130; 272; 312) that executes on the one or more processors to interpret model data (24; 54; 274) corresponding to the 3D model to generate the rendering of the 3D model , and modify the model data (24; 54; 274) in accordance with the received user commands; and a collaboration module (52; 134; 272) that executes on the one or more processors to cause the modified 3D model to be synchronized in real time between the first computing (12; 252; 502) and a second computing device (14; 254; 504) at which the 3D model is being concurrently developed, wherein to cause the modified 3D model to be synchronized between the first computing (12; 252; 502) and the second computing device (14; 254; 504), the collaboration module (52; 134; 272) generates a serialized representation of a model component , generates a description of a modification specified relative to elements of said serialized representation of the model component , and provides the description of the modification to the browser interface module , and wherein the first computing device (12; 252; 502) and the second computing device (14; 254; 504) operate independently of each other on a communication network . <EOS>