art_generators - Create & manage the lifecycle of digital art projects
======================================================================
NOT READY FOR USE YET
NOT ALL DESCRIBED FEATURES ARE IMPLEMENTED
Currently only SVG-based projects are supported.
Inspired by Ruby on Rails.
Creating a Project
------------------
> art_project project-name
This will create a folder named project-name.
The folder contains a number of files and directories.
Edit README to describe the project, and COPYING to describe the license terms of the project.
The Resources folder contains template.svg, which you can edit to set a default paper size and other features.
If you specify a version control system as an option (e.g. --git), the project directory will be initialised for that system and the project scripts will try to work with it.
Creating a Work
---------------
In the project folder, type:
> script/work new-work.svg
This will make a new work called new-work.svg in the Preparatory directory by copying resources/template.svg.
If you wish to start from another work in the Preparatory folder, type:
> script/work -c new-work.svg even-newer-work.svg
This will make a new work called new-work.svg in the Preparatory directory by copying Preparatory/new-work.svg .
If you wish to start from another work in the another folder within the project folder, type:
> script/work -c Final/new-work.svg even-newer-work.svg
This will make a new work called new-work.svg in the Preparatory directory by copying Final/new-work.svg .
Specifying works to copy with a slash in the name will cause the work to be copied from that folder in the project directory, not specifying a folder will default to the Preparatory folder.
Changing a Work's Status
------------------------
> script/status --final mywork.svg
Copies the file mywork.svg from workspace directory to the final directory.
If you are using git or svn to version control the project this command notifies them of the change.
Creating a Release of a Project
-------------------------------
> script/release 0.1
Creates an archive called project_name_0.1.tar.gz containing the final, discard and preparatory folders along with the LICENSE and README files.
Creating a Web Page for a Project
---------------------------------
>script/web
Creates png images and thumbnails of the contents of the final directory and creates a web page containing them in the web directory.
Example of Use
--------------
Create a project:
> art_project test
Change to the project directory:
> cd test
Create a work:
> script/work first.svg
Edit it:
> inkscape preparatory/first.svg
Create various other works and edit them:
> script/work -c first.svg workX.svg
...
Decide some are good and some are bad:
> script/status --final work1.svg
> script/status --discard work2.svg
...
Make a release archive:
> script/release 0.0.1
make a web page:
> script/web
Have a rest, then start making more works.
Design Notes
------------
The directory structure and the tasks performed by the scripts come from the workflow Rob Myers developed for use in his own digital art projects.
The idea of a system to generate a well-structured system of directories, files and scripts for use in a workflow comes from Ruby on Rails.