Insight - Localised Asset Management
Insight is a localised Asset Management System. The idea behind insight is to give a user similar functionality to that which they would experience when using a centralised server based AMS (Asset Management System) without the hardware and admin overhead that is typically required.
The goal is to give a user instant results when dealing tens of thousands of assets in an intuitive manor and minimal maintenance.
When initialised, Insight will generate an Sqlite database. This is a file-based database that resides on the users drive. Insight is fed search locations that are cycled over – and each file that has a supporting InsightPlugin (detailed on the next slide) are added to the Asset Database and become query-able.
As the database is self-populating it can be considered a non-critical resource. This approach means it is always reflective of the assets stored on the user’s machine - so it can be used to work with production files as well as the users working files.
Whilst this is less efficient than a central hosted SQL database it is far more portable, requires less maintenance and is easier to manage.
Insight has no hard coded understanding of what defines an asset. Instead, it expects a developer to implement a subclass of InsightPluginBase and define a regular expression, which will identify an asset it can represent. The developer can then re-implement any methods with asset/dcc specific logic.
This way the core of Insight does not care what formats are stored in the database. The only condition is that the format has a valid plugin it can interface with to extract the information it needs.
This makes Insight incredibly versatile, as there is no pre-conception of pipeline or operating environment - the tool could easily be used as a document management tool rather than game asset browser as shown in the video on the previous slide
When dealing with plugins that contain DCC API code such as 3dsmax or Maya we go down a hierarchical approach such as this:
MayaAssetPluginBase (contains no API code)
MayaAssetPlugin (contains DCC specific API calls)
This approach allows DCC specific asset types to be exposed outside the host DCC whilst still allowing for a rich experience within the application the asset is most native to. This leads to a rich cross-application tool that looks, feels and works in the same way regardless of where it is implemented without compromising on host specific functionality.
Source Control is a crucial component within many pipelines, therefore Insight also exposes this functionality as expected. However, instead of embedding the source control integration into the core codebase it takes the same approach as the Asset Plugins and allows you to register a Source Control Handler (which inherits from a SourceControlBase base class). This gives Insight the flexibility to work with Perforce, Git, SVN etc without hard coding any of their API's into the core.
The base UI is relatively simple comprising predominantly of a customised QListView, which shows all the assets matching the current query (along with their dependency structure). Each 'Asset Plugin' can implement its own context menu allowing for customised interaction whilst Insight appends its built-in items too.
Built-in functionality includes the ability to add and remove tags as well as the marking of assets as Favourites - which makes them much faster to access. It also includes basic access to seeing what is upstream and/or downstream of the given asset. For example, showing the context menu of a rig will list all the scenes that reference it and vice versa.
Due to its locally hosted nature Insight makes for a highly portable tool, opening the option to allowing users to work from home whilst using the same familiar asset tools. Equally, it is perfect for scenarios where there is a desire for outsourcing teams to interact with your assets in the same way as in-house artists without having to expose critical infrastructure to external entities.