initial planning document (mostly) done

This commit is contained in:
2014-10-21 19:33:45 +02:00
parent f80c7deb67
commit db89434803

View File

@@ -1,18 +1,35 @@
###########
%%%%%%%%%%%
Pipeline
###########
%%%%%%%%%%%
**The Story Tool**
*This is the over arching goal of the project.*
- Asset Management
- Project Management
- Automated Tasks
- Asset Management *Manage Files & Content*
- Project Management *Manage People & Tasks*
- Automated Tasks *Manage Geneated Content*
Asset Managment
===============
.. note::
Design Goals
...this is a tool, not a framework,
for anyone making animation(s) with Blender.
- Handle multiple projects.
- Foresee use of other tools (as well as Blender), in the work-flow.
- Support multi-site/distributed work-flow.
- Support **some** of the functionality in the Blender-Cloud.
- Design to **allow** for swappable modular components, even if we end up sticking with single technologies.
##################
Asset Managment
##################
- Assets <-> Users
- Revisions
@@ -20,17 +37,17 @@ Asset Managment
Architecture Overview
---------------------
=====================
Server
^^^^^^
------
- File asset
- Tools (blend file packer, evaluate sequencer, visualize deps, automated tasks ...)
- Public API (web service), *communicates with client.*
Client
^^^^^^
------
- Interface GUI/CLI (Blender/Web-UI also)
- Tools (manage files on the client, cache.)
@@ -174,9 +191,147 @@ Client
Server
------
-----
- Write blend file extractor / packager.
- Write online SVN browser.
- ... TODO
#####################
Project Management
#####################
Use phabricator! DONE :D
##################
Automated Tasks
##################
Components
==========
There are 2 types of tasks to be automated.
* User submitted tasks.
* Tasks generated by events such as commit hooks, finished rendering... etc.
Automated tasks are broken into 3 steps.
* Creation (API/CLI/GUI)
* Scheduling/queueing (Managed by the server)
* Execution/job management (Controlled via the server, though API's & UI's)
User Stories
============
Heres a list of tasks we would expect the system to support
- Generating Renderfarm Preview
- Low resolution textures for animation
- High Resolution Simulation (hair, smoke)
- Final Render a Scene
- OpenGL Preview Every Shot
- Bundle a Blend file into a ZIP
- Synchronizing Data (SVN/Database... repositories... backups)
- Consistency checks (automated tasks to validate the state of the project)
- Blend file hygiene/lint (unused datablocks, images not used anywhere)
- Building Blender
Implementation
==============
We plan to develop a very simple system leveraging existing technologies.
Dashboard
---------
UI (web based), allows manual creation of tasks.
Server
------
Backend connected to database and scheduler, managing & assigning jobs to workers.
Worker
------
Simple client, exposes control of the machine via an API.
%%%%%%%%%%%%%
Milestones
%%%%%%%%%%%%%
######################
Minimum Viable Product
######################
Get existing project migrated to asset manager as soon as possible.
- No Client-side-SVN.
- Checkout/Commit assets.
- Basic UI.
- ZIP file access (as an example, users wouldn't have to notice)
- Testing (basic testing framework)
###########
Performance
###########
- Parallel downloads
- Cache (avoid re-downloading files)
#########
Interface
#########
- BAM project definition.
- Blender Addon (UI for performing basic actions)
- *Maybe* extend GUI client.
- Web UI
- Download Zipfiles
###############
Scaling/Project
###############
- Consistency checks (correct library linking)
#####################
Basic Automated Tasks
#####################
- Generated Previews (basic automated tasks hooked up to asset manager)
- Baking (physics)
- Web UI (create/view/manage jobs)
##########
Story Tool
##########
- Establish connection between sequencer and 'shot' assets *(abstract concept)*
- Integrate into Addon
- Connect automated tasks on edit updates, (sync sequence with short assets)
- Expose the edit outside of Blender *(web based UI, reviews, comment, feedback, tasks...)*
##################
Project Management
##################
- Web UI
- Connect basic communication tools to assets, commits.