390 likes | 600 Views
3D Revision Control Framework. Jozef Dobo š & Anthony Steed Department of Computer Science University College London August 5, 2012. Introduction. 3D models grow in complexity Artists and engineers collaborate asynchronously File systems pose serious drawbacks. Contributions.
E N D
3D Revision Control Framework JozefDoboš & Anthony Steed Department of Computer ScienceUniversity College London August 5, 2012
Introduction • 3D models grow in complexity • Artists and engineers collaborate asynchronously • File systems poseserious drawbacks
Contributions • How to maintain distributed open repository for revising 3D models • How scene graph of 3D assets can be stored in NoSQL DB (MongoDB) • How to extend the DB to store revision history • Tier 1: A stand-alone GUI with conflict detection and resolution • Tier 2: A secondary read-only GUI via WebGL and Java
Previous Work Asset management and version control • High-end CAD modeling packages: • Bentley Assetvise • DassaultCatia • Software engineering: • SVN, Git, Perforce... • 3ds Max, Blender... + filesystems • Locking
Previous Work Edit logging • Nonlinear Revision Control for Images [Chen et al. 2011] • MeshFlow: Interactive Visualization of Mesh Construction Sequences [Denning et al. 2011] • VisTrails Provenance Explorer for Maya Network distribution • XML3D – Interactive 3D Graphics for the Web [Sons et al. 2010] • A scalable architecture for the HTML5/X3D integration model X3DOM [Behr et al. 2010] • SceneJS
Aim • Support non-linear concurrent modeling • Become agnostic to any specific modeling software • Make one DB store the scene and its revision history • Hence separate modeling from its long-term storage
Framework Overview • 3rd party modeling software saves 3D scene locally
Framework Overview • Tier 1 GUI imports/exports various 3D file formats • Visualizes revisions and differences • Saves scene components in remote 3D repository
Framework Overview • Domain specific database • Tracks revision history on individual scene nodes • Supports sub-scene retrieval
Framework Overview • Tier 2 GUI (subset of Tier 1 functionality) • Inspects repository, retrieves and visualizes revisions • Does not modify the models nor their history
Framework Features • Support for wide range of assets • Delta changes stored alongside non-linear history • Easy access control and sub-object retrieval • Interactive 3D diff tool • Web interface for repository inspection
3D Repository (DB) Scene Graph (SG) • Directed Acyclic Graph • SG Node: scene component (binary blob) • Metadata = (ID, R#) • Used by: • [Zeleznik et al. 2000] • [Berthelot et al. 2011] Revision History (RH) • Directed Acyclic Graph • RH Node: revision • Used by: • Git, SVN, Mercurial, ... • [Chen et al. 2011]
Revision History Branch Trunk Rev 0 Rev 8
Revision Management Revision Retrieval • Return all the newest SG nodes for a given revision number Revision Commit • Delta changes as new revisions • Potential conflicts → need conflict resolution Node deletion • Store NULL in the next revision • Recursively check children
3D Diff and Merge • Find corresponding nodes in A, B based on ID • Binary compare for differences
3D Diff and Merge • Identical nodes → no modification
3D Diff and Merge • Discrepancies in nodes → conflict • Select A or B or export into 3rd party editor
3D Diff and Merge • Given AncestorABmore states can be detected
3D Diff and Merge • Identical nodes → no modification (as before)
3D Diff and Merge • Some conflicts can now be automatically resolved
Prototype Implementation MongoDB • NoSQL (schemaless) • Geospatial indexing • Data as Binary JSON (BSON) – little-endian serialized C types • UUID as node identifiers • Two collections (one for each DAG – SG and RH)
DAG as Flat Collection • is a parent-child relationship • V is a logical disjunction
Tier 1 - 3D Revision Control Viewer • Written in C++ and Qt • Open Asset Import Library (Assimp) to handle models • Converts unified scene graph into collection of BSON • Handles all version control logic • Performs visual 3D diff • Exports to common file formats
Tier 2 - 3D Web Client • Driven by JavaScript • MongoDB Java driver loads BSON from DB • WebGL renderer displays in web browsers
Discussion • Interaction via import/export of 3D files • Files now considered only temporary representation • Smallest unit of change is SG node (BSON document) • Each SG node can be 16MB max (automated multiple documents workaround) • Assume the 3D file to preserve metadata • Lack of data validation on insertion
Future Work • Android and Java Webstart Tier 2 viewers • Store other types of data • Locking and hybrid locks with geometric constrains • Search via spatial queries • Integrate into existing industrial pipelines • Open crowd-sourcing of 3D models
Future Work • Possible direct connection from editing software • Hides the revision control layer from the user
Conclusions • Novel approach to storage and revision control of 3D assets • Represented hierarchical scene graphs in DB • Preserved associated revision history • Successfully decoupled modeling from long term storage
Sponsors Arup Foresight • http://driversofchange.com UK Engineering and Physical Sciences Research Council • http://www.epsrc.ac.uk UCL Engineering Doctorate Centre in Virtual Environments, Imaging & Visualisation • http://engdveiv.cs.ucl.ac.uk
Talk Invitation 3D Diff: An Interactive Approach to Mesh Differencing and Conflict Resolution • Session: Model Stories • Date: Tuesday, 7 August • Time: 2:00PM – 3:30PM • Location: Room 406AB http://3drepo.org