Browse files

Updated Readme

  • Loading branch information...
1 parent 1531c1e commit 818ddebdf01d7bd4b7ee2e999622f3b3fb47c7e9 @drdogbiscuit committed Feb 19, 2012
Showing with 136 additions and 42 deletions.
  1. +136 −42 README
View
178 README
@@ -1,55 +1,149 @@
-1. About
+= Ue
- Ue is a simple asset management and pipeline system for film and vfx.
- It's intended for small, individual projects and ease of setup. It's
- not database backed, instead using python dictionaries in text files
- to store metadata.
+== About
- Ue should be treated as Beta software right now!
+Ue is a simple asset management and pipeline system for film and vfx.
+It's intended for small projects, though it would likely scale to a
+multi-user environment.
-2. Design
+It currently has support for Maya and Nuke, with some more limited
+support for Adobe Photoshop, Adobe After Effects, RV and TVPaint. There
+is (alsp currently limited) support for DrQueue, an open source
+render farm solution.
- Ue describes elements. Each element describes one set of files, e.g.
- one comp script or one sequence of rendered images. Each element
- contains incremental versions of the files.
+Ue is based on a client/server archetecture and is backed by a MongoDB
+database. Comunication between client/server is handled though a CRUD
+JSON interface.
- An element is described like so:
+* The server (<tt>src/ueServer</tt>) is implemented in Ruby on Rails with
+ Mongoid as the MongoDB interface library.
+* The core asset system (<tt>src/ueClient</tt>, <tt>src/ueCore</tt>, <tt>src/ueRender</tt>,
+ <tt>src/ueSpec</tt>) is implemented in Python.
+* The command line tools and application wrappers (<tt>src/tools</tt>,
+ <tt>src/wrapper</tt>) are implemented in Python and Bash.
+* The core application GUI tools (<tt>src/ueCommon</tt>) are implemented in
+ Python and PyQt.
+* The applications specific tools (<tt>src/ueAdobe</tt>, <tt>src/ueMaya</tt>, <tt>src/ueNuke</tt>,
+ <tt>src/ueTVP</tt>) and implemented in appropriate application specific
+ languages - Maya in Python and MEL, Nuke in Python, the Adobe tools
+ in JavaScript and the TVPaint tools in George.
- > project:group:asset:name:type:class
+This was born out a need for a structured way to develop my own
+projects, after getting sick of loosing files, having to navigate
+though endless directory trees and ending up with tons of broken paths
+and references to files.
- * Projects i.e. a film
- * Groups i.e. a sequence
- * Assets are the working base of the pipeline, where applications
- can be launched from and elements saved to i.e. a shot
- * Classes describe what the element it i.e. a comp script, a
- rendered image sequence
- * Types describe what the element is in the context of the asset
- * Name is the specific name of the element
+Ue should be treated as Alpha software right now!
- An element string is a like an absolute file path - it needs to be
- unique. However, an individual project/group/asset/name/type/class
- string is like a file or directory name - it only needs to be
- unique within its parent.
+== Design
-3. Setup
+Ue describes elements. Elements abstract away filesystem storage from
+the user. Elements contain one or more versions. Each version contains
+one or more files, e.g. one comp script or an image sequence. Versions
+can optionally contain passes to hold multi-pass renders.
+
+An element is described like so:
+
+<tt>project:group:asset:name:type:class(:version(:pass))</tt>
+
+* <i>Projects</i> i.e. a film.
+* <i>Groups</i> i.e. a sequence.
+* <i>Assets</i> are the working base of the pipeline, where applications
+ can be launched from and elements saved to i.e. a shot
+ In ue, assets are also Maya projects and contain a Workspace.mel
+ template.
+* <i>Name</i> is the specific name of the element
+* <i>Types</i> describe what the element is in the context of the asset
+* <i>Classes</i> describe what the element i
+
+An element string is a like an absolute file path - it needs to be
+unique. However, an individual project/group/asset/name/type/class
+is like a file or directory - it only needs to be unique within its
+parent.
+
+== Directory Structure
+
+* <i>lib</i> Non-executable resources.
+* <i>src</i> Contains the ue source tree.
+* <i>template</i> Contains files that aren't sourced themselves, but are
+ copied out when a project/group/asset etc. is created.
+* <i>bin</i> Created on running ue_setup. It will contain symlinks to executable
+ scripts. This is added to your path my ue_env_setup.
+* <i>ue_env_setup</i> This should be sourced on login. It adds initial bin/python
+ paths, some aliases and some environment variables to your session.
+* <i>ue_setup</i> This should be ran on setup after sourcing ue_env_setup. It
+ creates a bin directory and populates it with symlinks.
+
+== Setup
+
+1. Prerequisites
+ * Linux
+ * Python
+ * Ruby
+ * Rails (gem install rails)
+ * Qt and PyQt
+ * MongoDB
+ * Nginx and Passenger (or similar solution)
+
+2. Edit ue_env_setup
+
+ Change UE_PATH to the absolute path of the ue source root.
+
+3. Source ue_env_setup
+
+ In your .bashrc, put a line like this:
+
+ source /work/bin/ue/ue_env_setup
+
+4. Run ./ue_setup
+
+ This will set up a bin directory in the ue source root with a
+ bunch of symlinks.
+
+5. Edit the paths in src/wrapper to match your applications
+
+6. Set up ueServer
+
+ cd $UE_PATH/src/ueServer
+ bundle install
+ rails server
+
+ Check the server is running (default is on port 3000). This is beyond
+ the setup instructions here, but for production, setting up a real
+ webserver would be recommended. Nginx and Passenger is a common choice,
+ but other options would include Thin or a proxy setup with Apache and
+ Mongrel.
+
+ Consult the Rails documentation for more information. There's also a lot
+ of other good information out there on running Rails apps.
+
+7. Application specific setup
+
+ Ue makes extensive use of PyQt in its interfaces. This is largely to
+ standardise interface design accross applications.
+
+ Neither Maya nor Nuke ship with PyQt due to licening restrictions, however
+ you can compile application specific PyQt stacks for each application.
+ This can be tedious and not for the feint of heart, but there's some
+ good instructions out there and some pre-compiled binaries.
- 1) Edit ue_env_setup
+ Maya: link:http://www.maya-python.com/2011/09/building-and-installing-pyqt
+ link:http://nathanhorne.com
+ Nuke: link:http://tdasylum.com/entry.php?5-Nuke-and-PyQt4-on-Fedora-13
+ link:http://www.kurianos.com/wordpress/?p=546
- Change UE_PATH to the absolute path of the ue source root.
+== Todo
- 2) Source ue_env_setup
-
- In your .bashrc, put a line like this:
-
- source ~/Code/ue/ue_env_setup
-
- 3) Run ./ue_setup
-
- This will set up a bin directory in the source root with a bunch of symlinks..
-
- 4) Edit the paths in src/wrapper to match your applications
-
- That's it!
-
-More coming soon...
+=== Short term
+* Script checker for Maya and Nuke
+* Thumbnail generator for Maya
+* Various fixes and improvements to the Maya Import/Export/Reference
+ tools
+=== Long term
+* Houdini support
+* 3Delight/Renderman compliant renderer support
+* Web based asset browser
+* Cloud rendering
+* Export tools for Photoshop and After Effects
+* Reference tool for After Effects

0 comments on commit 818ddeb

Please sign in to comment.