• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
 
 Abstract 
 — The development of networking and client/serversystems over the Internet had led to many collaborative work software applications. To extend the graphic designcollaborative platforms focused on 3D artistic characters, theArticiel project is based on the Articiel collaborative platformthat is a client-server application on the World WideWeb(WWW) based on a SOA architecture. This platform isincluding the essential functionalities needed by communities of distantly located artists to create and modify 3D characters orgraphic animations. The Articiel platform collaborativefunctionalities are: messaging, agenda, storing and retrievingartists’ projects and contributions. Previous work has provedthe usability of the Articiel platform by the programming of aMaya plugin who was calling the platform functionalitiesthrough its web services. The aim of this paper is to show a newcontribution algorithm and the technical innovations resultingof the plugin conversion from Maya to Blender.
I.
 
I
 NTRODUCTION
 HE
 
aim of the realization of the Blender plugin was thefulfillment of the Canarie[8] organism request by the Networking Research Laboratory for increasing the use of his CA*NET4 network by allowing more graphic artistcommunities to exchange contribution and project files. TheMaya[17] graphic software was proprietary domain and itsuse was restricted to the organizations that could afford thelicence fees. A request was made to build SOA architecture based plugin for the Blender Software that is similar to Maya but in the public domain software using a GPL license free of utilisation. The wide Blender community of users and thesupport given by the Blender organization was an asset to this project that allowed many students of different schools to participate in a collaborative creation of 3D characters inBlender.The Blender application is free of utilization and has arapid execution. It is used by a wide community of artistsdoing 3D drawing and graphic animations. It doesn’t have anexplicit graphic scripting language like Maya making Blender 
Manuscript received March 15, 2007.Omar Cherkaoui and Martin Poirier are with the Université du Québec àMontréal’s Networking Research Laboratory of the Computer scienceDepartment, PO BOX 8888, Downtown Branch, Montreal (Quebec) H3C3P8 – CANADA. Phone (514) 987-3000 Ext.: 6189 Fax: (514) 987-8477(e-mail: cherkaoui.omar@uqam.ca; poirier.martin.6@courrier.uqam.ca)Martin Lesage, Gilles Raîche and Martin Riopel are with the Universitédu Québec à Montréal’s Education Department, PO BOX 8888, DowntownBranch, Montreal (Quebec) H3C 3P8 – CANADA. Phone (514) 987-3000Ext.: 8982 Fax: (514) 987-4608 (e-mail: lesage.martin.3@courrier.uqam.ca;raiche.gilles@uqam.ca; riopel.martin@uqam.ca)Faysal Abouzaid is a Ph.D. student in computer science at the ÉcolePolytechnique de Montréal, PO BOX 6079, Downtown Branch, Montreal(Quebec) H3C 3A7 – CANADA. Phone (514) 340-4711 (e-mail:mohamed-faical.abouzaid@polymtl.ca)
files smaller than Maya files for a same graphic scene. TheBlender application has advanced embedded data structuresoffering frontward and backward compatibility. Thisapplication can also interface itself with Web services by itsPython[19] scripting API and the SOAPPy[21] module. Thisapproach had been studied in the present paper, buy rejectedat the advantage of a wrapper Python/C++. The wrapper approach was selected for his higher level of reuse of theMaya plugin C++ code.The code kept was the Web services access routines andthe project management routines. The contributionmanagement had to be rebuilt form scratch. The contributionmanagement programming is one of the major parts of this project and discussed in section 5.This paper is organized as follows: we will place thesubject in the background section in section 2, explain thecollaborative work platforms in section 3, and define thecontribution in section 4. The subject entry completed, wewill develop our solution of the Blender pluginimplementation in section 5. The results will be shown insection 6 by the use of the plugin for 3D legendary shapedcharacters by Montréal city high school students. In section 7are presented the limitations of this project. Future work is proposed in section 8. The work and results described in this paper have been accepted for a master degree thesis[15].II.
 
B
ACKGROUND
 Extensive tests and experimentation by graphics artists’communities had proved the reliability of the ArticielPlatform and the user friendliness of the Maya plugin. One of the major limitations of this approach was that the Mayaapplication is a proprietary software and its buying costs areexpensive. That limitation was denying some users to use theArticiel platform for 3D characters creation and animationcollaborative work project. The aim of this project was todevelop a Blender plugin that have exactly the samefunctionalities than the Maya plugin and could docollaborative work by calling the Articiel Platform Webservices. The Blender artistic 3D character and graphicsanimation public domain software is free of utilization.In that context a conversion of the Maya Articiel Plugin toa Blender Articiel plugin was done. The challenge was thatthe APIs of Maya and Blender were different. We couldn’trecompile the Maya C++ code in the Blender API andcontinue further studies of the problem. The MAYA API is based on the MEL(Maya Embedded Language) scriptinglanguage that is describing the operations applied on thegraphic objects. Collaborative functionalities could be addedto Maya by plugins made in the Microsoft .NET Visual C++
Blender Plugin Implementations for 3D Collaborative Work 
Martin Lesage, Omar Cherkaoui, Faysal Abouzaid, Martin Poirier, Gilles Raîche, and Martin Riopel
T
 
  programming environment. The Blender API is different and based on the Python[19] language. It doesn’t have a specificdedicated graphic operation scripting language. The Blender  plugins are only applicable for texture and sequence and aredeveloped in the LCC/GCC environment. They don’t supportthat kind of architecture. We had to study the Python API totranspose the contribution problem in the Blender Python API programming environment
 
III.
 
C
OLLABORATIVE
W
ORK 
P
LATFORMS
 The Articiel platform is a Web server applicationregrouping many Web services programmed in the MicrosoftC++ .NET software development package. The Articiel platforms allows allow groups of users assigned incommunities and studios to work and exchange contributionssimultaneously in real time situation. An artist session usesthe Articiel platform collaborative application to exchangefiles and contributions with other artists. The platformcollaborative application enable the user to perform a work session (login and logout), to exchange files and contributionswith other users (dataflow management), to add comments tohis work (annotation) and to communicate with other artists by an electronic agenda and mailboxes (workflowmanagement). The platform can be accessed by a Web browser or by a plugin as shown in figure 1. Due to its trivialoperation mode, the Web browser access will not beconsidered in this paper.Fig. 1. Articiel platform collaborative model[14]The Articiel collaborative platform has layered softwarearchitecture. All of its Web server applications areimplemented in Web services. The plugin software developedfor the Articiel platform is entirely base on calls to its Webservices. Figure 2 illustrates the platform project, session andfile management through software layers. The functionalitylayer enables the user’s registration functionalities (login andlogout) and the files annotation (comments describing thecontributions). The service composition layer manages theWeb services with the UDDI repository. The High-levelservices layer manages the artist’s contribution and projectfiles. This level also identifies the artist studio andcommunity. The common services layers implements the chatand mailbox services. The low level files storage on the Webserver is managed by the Data level.Fig. 2. Articiel layered web services architecture[5][13][14]IV.
 
C
ONTRIBUTION
D
EFINITION
 The Articiel platform provides a distributed collaborativework platform over the Internet for 3D wiremesh graphics projects and animations as shown in figure 3. The Articiel platform manages artist’s projects and contributions. An artist project is a graphic scene or an animation that usuallyincludes 3D characters evolving in a background. The Maya project files have the “.MB” extension while the Blender  project files have the “.BLEND” extensions.Fig. 3. An user contribution modifying the nose[16]In the Articiel collaborative platform context, an artistcontribution is the smallest component of work that the artistcould do to a 3D character. The contribution is generally aslight modification of a 3D character body part (head, limb,arm, head, nose, etc.). Figure 3 illustrates an artistcontribution that is a 3D character nose enlargement. For computer processing, the contribution will be a small text filecontaining software application script or numerical data. TheMaya 3D software application contributions files containsMEL (Mata Embedded Language) script describing themodification (Ex.: select –r Setup.vtx[24:168]
Articiel platform
Collaborativeapplication 1(web browser access)Collaborativeapplication 2(plugin access)Collaborativeapplication n(plugin or web browser access)
 
 Setup.vtx[1321:1324], …, etc.). The Blender 3D softwareapplication contribution files contains a list of datarepresentations of the 3D characters’modified vertex (Ex.:295 [0.0027, 0.0013, 0.000], 309 [0.2123, 0.1001, 0.000], …,etc.). In both case, the contribution file is recording in the textfile the displaced wiremesh vertex resulting of a 3D character  body part modification.Fig. 4. Articiel contribution reentrancy[14]An Articiel project contribution has reentrancy properties:the same contribution can be applied several number of timesto the same character resulting a repetition of the modificationthat increase or decreases in magnitude the targeted part of the 3D character as shown in figure 4. A contribution appliedat a 3D character can also be applied to a different character as long as both characters have the same number of vertex.Fig. 5. Geometrical 3D model of the Blender contribution[15]The first number of a line of the text file is thenumber of the modified vertex. The numbers in brackets arethe vertex changes for the three dimensional X, Y and Zcoordinates. The resulting vertex difference is:
i
= v
i
’ - v
i
asdemonstrated in figure 5. The following difference can beexpanded over the x, y and z coordinates :
ix
= v
ix
’ - v
ix
 
iy
= v
iy
’ - v
iy
 
iz
= v
iz
’ - v
iz
 
The following Python code function describes thegeneration of the contribution in Blender. This code recordsthe list of the modified vertex of the 3D character in a textfile:
 
def startContribution(self):BLENDER.Window.EditMode(0)self.OldMesh = GetMesh(self.getPerson())if not self.OldMesh:return Falseself.sendUserData()val = Wrapper.NewLog()self.File = open(Wrapper.getLogPath(), "w")return valdef stopContribution(self):if not self.OldMesh:returnContribution = ""BLENDER.Window.EditMode(0)mesh = GetMesh(self.getPerson())if not mesh:return Falsefile = self.Fileif len(mesh.verts) != len(self.OldMesh.verts):print "Vertex added or remove from mesh:"print "Cannot calculate and send contribution"Error("Calculating Contribution")return Falsefor i in range(len(mesh.verts)):v2 = mesh.verts[i].locv1 = self.OldMesh.verts[i].locif v1[0] != v2[0] or v1[1] != v2[1] or v1[2] != v2[2]:Contribution += str(i) + " " + str(v2 - v1) + "\n"file.write(Contribution)file.close()self.OldMesh = Nonereturn True
 V.
 
B
LENDER 
P
LUGIN
I
MPLEMENTATION
 The Blender plugin implementation started with the studyof the Maya plugin code and the Blender programming API.Some preliminary tests were done with the SOAPPy module but this option would have led the programming team torewrite all of the Maya plugin code accessing the Webservices. An other option was studied which was aPython/C++ wrapper that is the adopted solution and led us toreuse all the Web C++ code implementing the Web servicesaccess.
 A.
 
UserInterface
Fig. 6. Articiel platform user interface[13]The Blender plugin user interface is a window of theBlender user interface. The interface enable the artist to start asession on the Articiel Platform with a login process and alsoto quit the session. The Articiel session enable the artist to docollaborative work in real time simultaneously with the other logged users. The plugin also enable the Artist to exchange projects and contributions while they are working in a session
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...