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 (402, 404), each component having a plurality of elements (410, 420); 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 (402, 404), generates a description of a modification specified relative to elements (410, 420) of said serialized representation of the model component (402, 404), 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 (402, 404), each component having a plurality of elements (410, 420); 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 (402, 404), generates a description of a modification specified relative to elements (410, 420) of said serialized representation of the model component (402, 404), 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.