The Collaborative Dynamic Art Project

advertisement
The Collaborative Dynamic Art Project
CSE 403 – Software Engineering
Cy Khormaee
Andy Olson
Alex Zheng
1
Operational Concepts
With the advent of the internet, the overhead of communications has become effectively nullified.
The artistic community has taken great advantage of this fact to expose their work with a broader
audience. However, artists have not yet begun to truly embrace the opportunities for cooperative
project development offered by the advancement of this new media. The postmodern ideals of
embracing fragmented diversity and rejection of abstract meaning can be best realized by calling
upon several different minds to develop a single work of art.
The Collaborative Dynamic Art Project’s objective is to provide an online forum through which
artists can meet to develop each other’s work. By leveraging the reach and diversity of
individuals contributing to online content, an artist can integrate an unprecedented volume of
diverse intellectual content into their work. And, if The Collaborative Dynamic Art Project
enables artist to successfully apply this content in a cohesive manner to a single piece of art, it
will represent a proof of concept for a new framework for the development of a new ideal for of
postmodern art.
System Requirements
In order to promote collaboration as the primary objective of this project, an extremely portable
and versatile online digital art form had to be selected as the primary media for The
Collaborative Dynamic Art Project. The Processing environment, developed by Ben Fry and
Casey Reas in the MIT Media Lab, is an open source (GPL) enables users to create dynamic
interactive digital visual art with the benefit of OpenGL 3D acceleration. And, while this
environment allows for simplified serial port access, and video integration, its primary focus is
the translation of algorithms into visual art. Compositions developed in Processing are compiled
into a Java applet, and inherit all the portability of that media.
Processing is also optimal for the development of a collaborative artistic environment simply
because of its versatility and ability to encapsulate complexity. Its temporal element is able to
capture an infinite amount of complexity from a variety of authors. Also, the fact that Processing
art is typically algorithmically based, developing filters for or additions to the original algorithms
offers a simple but effective manner in which users can constructively develop a composition
However, the primary focus of The Collaborative Dynamic Art Project would be to provide the
communications infrastructure through which artists would be able to cooperate. Primarily, this
entails porting the Processing application to an online service and the creation of a community
framework. In order to port Processing to an online service, we will have to develop a front end
user client development environment which can communicate with a server capable of on-the-fly
remote compilation. The primary reason for this division is that the size of the Processing IDE is
currently 26 MBs, which is clearly untenable for a ported applet.
The community framework of The Collaborative Dynamic Art Project will primarily consist of a
front end user portal through which users can create and modify projects as well as communicate
with each other via a contextual (project centric) message board. More specifically, after a user
selects a project, its evolution will be visualized via a directed graph where each node represents
2
different variation on the original piece. A user may create a child for any node by simply using
that node as the original for a new piece of art. In the end, a piece will consist of a tree
representing the progression of the work over time.
It is important to note the distinction between The Collaborative Dynamic Art Project and
collaborative source control systems such as CVS or even a Wiki. The goal of this project is to
provide artists with the capability to observe and take part in the evolution of an initial idea and
composition. The tree representing the evolution of a composition is the finished product rather
than a single document as is the case for a product developed with CVS or a Wiki.
Also, in recent years, a few have attempted to create a framework with a similar idea of
promoting collaboration. Most notably the Collaborative Art Project authored by Tom Groves.
This project provides users with a simple 2-D drawing interface which users have been
continually editing over the last two years. While a few interesting variations arise, more often
than not, the canvas is simply overwritten by another user. This represents an interesting, but
largely unsuccessful foray into public collaboration.
The Collaborative Dynamic Art Project is able to remedy much of the issues of the original
Collaborative Art Project by provided a temporal element to the composition. The Processing
“canvas” is infinitely large, so users will be able to simple add to rather than overwrite
preexisting work. Also, the versatility of algorithmic manipulation enables users to make
modifications which alter rather than replace the original essence of a piece. And, lastly, the
evolutionary structure provided as a navigation element in The Collaborative Dynamic Art
Project will encourage users to adapt a common theme of the lifetime of the piece rather than
using the evolutionary structure as a chronicle of disjoint compositions.
System and Software Architecture
The software architecture for The Collaborative Dynamic Art Project can be divided into two
major domains: Client and Server. It is important to reiterate the fact that the Processing IDE
will have to be split into a compiler (residing on the server) and a client editor (residing in a java
client). When a user wants to run their script, the script will be sent to the server, which will
then compile it into Java code and insert it inline into the user’s view page. This will eliminate
the need for a user to download all 26 MBs of the Processing environment. In other words, the
server side does the hard work for the client, and the client only sees the results.
With this in mind, the Client domain as a whole will consist primarily of the mechanisms to
visualize the project information and the front end client for the Processing Environment. And,
the server would contain mechanisms to handle the transfer of data (between client and database),
servicing page service requests, and dynamically generating the HTML to display the page
information.
The implementation of The Collaborative Dynamic Art Project can be composed of either the
open source LAMP (Linux, Apache, mySQL, PHP/Python) architecture or the Microsoft webservice architecture. In the LAMP architecture, the server would be a Linux based system
running an Apache web server. When a page is requested by a client, the Apache server would
3
request a PHP or Python script to be run which would use the data from the mySQL database to
dynamically generate an HTML page to pass back to the user. The primary advantage of this
architecture is its strong security and low cost.
The alternative Microsoft web-service architecture would use a computer running Windows
Server with Microsoft Internet Information Services (IIS). When a page is requested by a client,
the IIS server module would request an ASP.NET application to use data from the SQL Server
database and use it to dynamically generate an HTML page to pass back to the user. The
primary advantage of this architecture is its development speed and advanced feature integration
(such as ActiveX COM Objects).
While both of these architectures have their own unique strengths, in the end the architecture will
be contingent upon the expertise and preferences of the development team as well the available
technologies. Nevertheless, in the end, all of the components of our online services platform are
industry standard and have been used in other large scale projects. The larger risk in the
architecture of The Collaborative Dynamic Art Project is that we would have to rewrite a large
portion of the Processing Environment source to allow it to be divided into client and server
pieces.
Lifecycle Plan
The Dynamic Collaborative Art Project proposal is targeted primarily as a lightweight
collaboration and development tool for the Processing community, however it also has impacts
into the broader art community. The project creates a simpler, more portable and accessible
method of digital graphics production. This could potentially increase the popularity of digital
artwork and specifically Processing based artwork. It should be noted that the project allows for
increased online collaboration and idea sharing, which are common threads in current
technological progress. The open-source computing technology in general can benefit from
online demonstration projects of concepts such as collaborative work, distributed programming,
and community-based idea sharing. The University also benefits from hands-on experiments in
student learning for software engineering such as this one.
We chose the Staged Delivery (Agile) Model of development for constructing our project. The
choice of development process was rooted in the need for high levels of organization and strong
upfront design in this large project. The modular nature of the project lends itself to using the
Agile model. The project as a whole can be split into parts for separate or parallel development.
Since the project is also heavily based in user interaction, having multiple release points gives us
several chances to gauge user acceptance and respond to it accordingly.
There are several major components in the project that can be separately developed. The main
ones are the database, sever applications (drawing, displaying old projects, and editing new
projects), communications infrastructure (message board), the client interface, and the
interactions between the various parts of the project. Each application can be tested as a
standalone application, and then combined with the other working applications as part of the
integration process. The big risks in development are in creating the client interface and
database infrastructure, since they play such a central role in the project and in the performance
4
of the application as a whole. This involves separating the Processing application into a client
and a server part, which is a non-trivial task. Many of the components need to draw information
from the database to yield anything useful. Therefore, the database should be developed early so
that useful development of the other parts can be done. The user interface should also be
developed early, at least in a preliminary form, so that user feedback can occur. After those
components are completed, the applications and the message board can be developed in parallel
and integrated with the infrastructure one at a time. This minimizes the risk in integration
because each component can be attached to the others separately, and allows for deliverables at
each stage because the project is developed in modularity.
Feasibility Rationale
With any project, the design is often limited by the resources available, in terms of both time and
human and computing resources. In designing a project for 6-8 people of varying abilities and
availability over an 8 week period, there should be an inherent flexibility within the design. The
design that we have proposed allows for modular development of system components, and a
large spectrum of variability as to what should be added to the core project. At the core, the
project should be allow users to start new projects, see old projects, edit old projects, and post
their own projects after they are done. This requires that the database, drawing applications,
display applications, and user interface are all completed. Beyond those basic requirements,
there are also many additional upgrades that can be done that can be added on top of the core
system. For example, the addition of a forum for commenting on drawings, or the modification
of the drawing application to allow for multiple users to edit the picture at once, or the addition
of user logins for protected work environments. These are all optional additions that could be
added in if resources permit, but that are not crucial to the fundamental operation of the idea put
forth.
The architecture of the project design is not extremely risk-prone. The design is based on proven
client-server architectures, taking advantage of existing software, such as the Processing
application and the .NET framework. The design made use of widely-used applications as much
as it could to provide consistency, and there are several backup software applications that could
be substituted in for any particular part of the design if we are unable to gain access to certain
software suites. The idea is not extremely risky. All of the components that we have chosen
have been proven by industrial applications, and are generally considered reliable and easily
integrated with other components.
Conclusion
The Collaborative Dynamic Art Project is an idea that would change the way that people think
about artwork, online collaboration, and the Processing community. While it is not a trivial
project, it has been designed with proven software and processes to reduce risk. We hope that
we will be given the opportunity to develop this project in the coming weeks.
5
Download