A tangible non-transitory computer-readable medium having stored thereon a plurality of software components for three-dimensional, 3D, modeling comprising: an introductory software component including first instructions (240/290) that, when interpreted by a web browser application (194/220/270) executing on one or more processors (182/184) of a client device, cause the web browser application (194/220/270) to: render a 3D model of one or more objects via a user interface (222/272) of the client device, update a viewpoint corresponding to the rendering of the 3D model in response to receiving via the user interface (222/272) a first user command to update the viewpoint, receive a second user command via the user interface (222/272), the second user command corresponding to a function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of an object within the 3D model, determine if the introductory software component includes second instructions corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, generate a request for an extended software component in response to determining that the introductory software component does not include second instructions (242/292) corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, cause the request for the extended software component to be transmitted to a server via a communication network, and receive the extended software component, wherein the extended software component includes second instructions (242/292) configured to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model in response to receiving, via the user interface (222/272), the second user command. an introductory software component including first instructions (240/290) that, when interpreted by a web browser application (194/220/270) executing on one or more processors (182/184) of a client device, cause the web browser application (194/220/270) to: render a 3D model of one or more objects via a user interface (222/272) of the client device, update a viewpoint corresponding to the rendering of the 3D model in response to receiving via the user interface (222/272) a first user command to update the viewpoint, receive a second user command via the user interface (222/272), the second user command corresponding to a function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of an object within the 3D model, determine if the introductory software component includes second instructions corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, generate a request for an extended software component in response to determining that the introductory software component does not include second instructions (242/292) corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, cause the request for the extended software component to be transmitted to a server via a communication network, and render a 3D model of one or more objects via a user interface (222/272) of the client device, update a viewpoint corresponding to the rendering of the 3D model in response to receiving via the user interface (222/272) a first user command to update the viewpoint, receive a second user command via the user interface (222/272), the second user command corresponding to a function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of an object within the 3D model, determine if the introductory software component includes second instructions corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, generate a request for an extended software component in response to determining that the introductory software component does not include second instructions (242/292) corresponding to the function to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model, cause the request for the extended software component to be transmitted to a server via a communication network, and receive the extended software component, wherein the extended software component includes second instructions (242/292) configured to add, remove, change a shape of, change a texture of, or change a color of 3D model data of the object within the 3D model in response to receiving, via the user interface (222/272), the second user command.