diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..c54fa5c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+examples/maya/private**
+examples/maya/public**
\ No newline at end of file
diff --git a/README.md b/README.md
index 891f574..2ec02c6 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,123 @@
-# pyblish-starter
-Jumpstart your publishing pipeline with a basic configuration
+### Pyblish Starter
+
+Jumpstart your publishing pipeline with a basic configuration.
+
+
+
+
+
+### Features
+
+- Basic discovery of assets
+- Basic validation
+- Model, rig and animation extraction
+
+
+
+
+
+### Install
+
+Starter takes the form of a Python package with embedded plug-ins.
+
+```bash
+$ pip install pyblish-starter
+```
+
+
+
+
+
+### Usage
+
+Plug-ins are registered by calling `setup()`.
+
+```python
+>>> import pyblish_starter
+>>> pyblish_starter.setup()
+```
+
+### Example
+
+Scripted demonstration of how to model, rig and animate an asset.
+
+
+
+
+
+### Contract
+
+Starter defines these families.
+
+| Family | Definition | Link
+|:--------------------|:----------------------------------------------|:------------
+| `starter.model` | Geometry with deformable topology | [Spec](#startermodel)
+| `starter.rig` | An articulated `starter.model` for animators | [Spec](#starterrig)
+| `starter.animation` | Pointcached `starter.rig` for lighting | [Spec](#starteranimation)
+
+
+
+### `starter.model`
+
+
+
+A generic representation of geometry.
+
+```yaml
+Instance:
+ label (str, optional): Pretty printed name
+ in graphical user interfaces
+
+Sets:
+ geometry_SEL: Meshes suitable for rigging
+ aux_SEL: Auxilliary meshes for e.g. fast
+ preview, collision geometry
+```
+
+
+
+
+### `starter.rig`
+
+
+
+The `starter.rig` contains the necessary implementation and interface for animators to produce
+
+```yaml
+Instance:
+ label (str, optional): Pretty printed name
+ in graphical user interfaces
+
+Sets:
+ cache_SEL: Meshes suitable for
+ pointcaching from animation
+ controls_SEL: All animatable controls
+ resources_SEL: Nodes that reference an external file
+```
+
+
+
+### `starter.animation`
+
+
+
+Point positions and normals represented as one Alembic file.
+
+```yaml
+Instance:
+ label (str, optional): Pretty printed name
+ in graphical user interfaces
+
+Sets:
+ None
+```
+
+
+
+
+
+#### Todo
+
+Instances, in particular the Animation instance, requires some setup before being cachable. We don't want the user to perform this setup, but rather a tool. The tool could be in the form of a GUI that guides a user through selecting the appropriate nodes. Ideally the tools would be implicit in the loading of an asset through an asset library of sorts.
+
+- Tool to create model, rig and animation instance.
\ No newline at end of file
diff --git a/pyblish_starter/__init__.py b/pyblish_starter/__init__.py
index dbe5468..3bd932c 100644
--- a/pyblish_starter/__init__.py
+++ b/pyblish_starter/__init__.py
@@ -1,10 +1,25 @@
+import os
+import pyblish.api
from .pipeline import (
time,
- private_dir,
+ format_private_dir,
)
+
+def register_plugins():
+ # Register accompanying plugins
+ from . import plugins
+ plugin_path = os.path.dirname(plugins.__file__)
+ pyblish.api.register_plugin_path(plugin_path)
+
+
+def setup():
+ register_plugins()
+
__all__ = [
"time",
- "private_dir",
+ "setup",
+ "register_plugins",
+ "format_private_dir",
]
diff --git a/pyblish_starter/plugins/__init__.py b/pyblish_starter/plugins/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/pyblish_starter/plugins/collect_instances.py b/pyblish_starter/plugins/collect_instances.py
index 47c103d..5db353e 100644
--- a/pyblish_starter/plugins/collect_instances.py
+++ b/pyblish_starter/plugins/collect_instances.py
@@ -11,8 +11,8 @@ class CollectStarterInstances(api.ContextPlugin):
id (str): "pyblish.starter.instance"
Supported Families:
- model: Geometric representation of artwork
- rig: An articulated model for animators.
+ starter.model: Geometric representation of artwork
+ starter.rig: An articulated model for animators.
A rig may contain a series of sets in which to identify
its contents.
@@ -25,6 +25,7 @@ class CollectStarterInstances(api.ContextPlugin):
- One (1) rig per scene file
- Unmanaged history, it is up to the TD to ensure
history is up to par.
+ starter.animation: Pointcache of `starter.rig`
Limitations:
- Does not take into account nodes connected to those