Developer - abstractfactory/pipi GitHub Wiki
A birds-eye view of Pipi and its capabilities.
- Resources
- Software Discovery
- Resource Discovery
- Publishing
- Reuse
- Tracking
- Links
- Building
- Automation
- Specificatons
- References
Prior to setting out to develop a minimalist, re-mixable and extendible framework for content creation, a number of constraints was set out. We wanted Pipi to reach as broad of an audience as possible and to facilitate the heterogeneous needs involved within each production; whether it be pre-visualisation, game level design or feature film work.
- Enable artists
- Location agnostic
- Software agnostic
- Platform agnostic
- Scale agnostic
- Language agnostic
Upon the above requirements, an architecture was formed.
Each resource is uniform in behaviour and appearance; including what may be referred to as assets, shots, sequences, levels, users, tasks et. al. This allows tools to operate on anything and everything without requireing special attention or maintenance.
/projects/spiderman/shot1/private/<app>/<user>/v001.mb
/projects/spiderman/private/<app>/<user>/v001.mb
/projects/spiderman/Peter/animLow/private/<app>/<user>/v001.mb
Resources are natively schemaless. As opposed to other solutions that lock you into a schema prior to initiating any new project, a schemaless approach means that you are free to start out a minimalist and only build out when and where you actually need to.
/projects/spiderman [Project, Superhero]
De-centralisation means to be without dependence on centralisation. Each application operates in isolation under a commonly understood language (messaging, more on that later) and may, but doesn’t have to, interoperate with other applications. This is a service-oriented architecture.
Metadata is stored together with its content. Traditionally, metadata is seggragated into a database where it is later manipulated and managed. When separated you face issues of where the true source of things are located; is this file the latest version, even though the database has recorded another version? Where is it? You also face issues of synchronisation; I’m storing this file here, now I’ll tell the database that this is what I did.