In a Nutshell

3D Repo is essentially a database schema, a layout and a definition of how a scene graph is organised and queried for individual revisions. The framework consists of several distinct client applications written in multitude of languages that implement the schema and enable version control on many common 3D assets including meshes, materials, textures and the like. The core library, written in C++, supports our cross-platform Qt-based GUI. This currently serves as a testbed for new features and future plug-in development. In addition, we provide Java and JavaScript ports for the purposes of online repository viewers. Finally, a REST API abstracts the underlying encoding from delivery formats and exploits standard HTTP methods.

Completion to RC1

3D Repo Core

93%

3D Repo GUI

65%

XML3DRepo

73%

3D Repo Java Core

55%

3D Repo Android App

69%
 

3D Repo Core

A centralised open source 3D repository is built directly atop of a plain vanilla NoSQL database MongoDB. Complex 3D models are decomposed into their constituent parts that act as binary delta changes stored in a non-linear version control system. Unlike the common Undo functionality, with this system it is possible to create branches and merge revisions. Hence, modifications by multiple editors can be applied to the same part of a 3D scene concurrently. Thanks to the full querying potential of a database, it is further possible to retrieve any sub-graphs as well as collections of components by type, date, author and so on. Actually, the repository is oblivious to the data formats, so not only 3D assets but any associated properties can all be stored alongside of geometry. As long as the data is organised in a graph structure the repository can handle it!

Read More

Handcrafted in the United Kingdom

3D Repo GUI

3D Repo GUI is a cross-platform desktop application providing user interface to the 3D Repo Core library. Built-in 3D Diff™ is a visual differencing and merging tool that enables automatic detection and resolution of conflicting edits. In a standard 2-way diff, the differences are detected automatically by noting correspondences and discrepancies between two input models. When the common origin of the models is known, a 3-way diff, further unresolved ambiguities can be fixed automatically. Whatever the scenario, the remaining conflicts are highlighted for manual intervention and are resolved by accepting or rejecting scene graph components internally, or externally in a vertex-level editor. The tool can even distinguish implicit and explicit conflicts depending on whether they are the side effects of the merging process itself. Apart from the 3D Repo framework, the 3D Diff can be also used in conjunction with other version control systems such as SVN and Git.

Read More

XML3DRepo™

XML3D is an open source extension to HTML5 that embeds interactive 3D graphics directly into web pages. These can be rendered via WebGL-enabled web browsers such as Chrome, Firefox, Opera, Safari and even Internet Explorer as of version 11. XML3DRepo is a server-side combination of XML3D and 3D Repo technologies that stores a unified file-format-independent representation of 3D scenes. A version controlled repository enhanced in this way exposes a RESTful API for online integration. Purpose-built client applications can select from a variety of encodings depending on the intended use, the properties of the network connection as well as the hardware it is being run on. By exploiting the parallel fetching capabilities of the web browsers, the client can issue a vast number of requests in order to asynchronously load the resources, a concept that works equally well on desktop and mobile devices.

Read More

Android App

3D Repo Android App is a light-weight client that enables viewing and sharing of models stored in the 3D Repo cloud. The app connects directly to a remote repository in order to visualise and annotate virtual designs and their individual revisions during the development and review stages of a project. The main functionality, inspired by Arup’s Collaborative Map, was developed as part of the SIGGRAPH Asia 2012 Symposium on Apps submission. Nevertheless, it has now been superseded by the XML3DRepo viewer which soon will support the same functionality on all mobile platforms, not just Android.

Read More