Diffing, Patching, and Three-Way Merging for openNURBS 3D Models
A thesis submitted to the faculty of The University of North Carolina at Charlotte in partial fulfillment of the requirements for the degrees of Master of Architecture and Master of Science in Information Technology
The ability of architects to collaborate and work in parallel on digital assets is limited by pessimistic strategies for managing shared files. The software engineering community has worked around this problem by adopting optimistic version control techniques, which rely on the ability to diff, patch, and merge versions of the files they manage. Unfortunately, the diffing, patching, and merging algorithms in existing version control systems are designed to work with text, and not with the types of files, such as 3D models, most commonly used by architects. This thesis describes a set of command line programs capable of diffing, patching, and merging openNURBS models, an open-source 3D model format that enjoys widespread use among architects and other design professionals. Integration of these programs into an off-the-shelf version control system is demonstrated, and an abstract domain model is presented which can be used to apply their capabilities to other file formats as well.