Skip to content
Marcus Ottosson edited this page Jul 26, 2014 · 23 revisions

A birds-eye view of Pipi and its capabilities, along with the target audience.

Goals

Prior to setting out to develop a minimalist, remixable and extendable 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. Following a set of interviews from developers at world-renowned studios across the world, a list was created that would encapsulate the needs of even the most obscure production and help even the smallest of newly founded organisations to find a method that would work for them; both now and in the future as they grow to become the new leaders in computer generated imagery.

  • Enable artists
  • Location agnostic
  • Software agnostic
  • Platform agnostic
  • Scale agnostic
  • Language agnostic

Architecture

Upon the above requirements, an architecture was formed.

Uniformity

Each asset 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

Schemaless

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.

De-centralisation

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.

Consolitation

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.

Clone this wiki locally