VerteXPath version-controlled asset management

(ed: I changed this project name from COLLADA-Verse to VerteXPath when I noticed that Khronos require paying membership in order to use COLLADA trademark in project names - whoops, sorry, the old url still works, though.)

Howdy COLLADA Enthusiasts!

I just recently caught wind of this project and am very excited to hear that so many well-known names in CG & Entertainment have hopped on - I only wish I’d hung out with you guys at S2005, or even that I’d known to ask about this when I interviewed Tim Fortenberry, developer of Industrial Light & Magic’s asset management system. :wink:

In any case, this is an exciting idea for me for a couple of reasons:

(a) I can’t stand Information belonging to Inanimate Software.

(b) I’ve had limited success trying to convince myself and the rest of the world that it’s Wise™ to ditch commercial tools such as Maya and friends for Blender and its’ ilk. I would really like to collaborate in educational, professional, and creative environments with artists and others who prefer or for some reason need to use proprietary software tools, or even to interact with data produced in these tools once my license runs out and possibly process it with the sort of tools I am already familiar with.

In pursuit of (b), I’ve been following the Verse project since I saw an impressive demo at SIGGRAPH 2005. The Verse developers provide us with a set of example application and a network protocol for sharing interconnected 3d subsurf mesh and bitmap nodes in real-time over varying quality of networks, esp. designed for the Internet. There is a branch of Blender which includes native support for Verse, and there are commercial plugins in development for Max, Maya, and probably others…

Recently, remi sent a request to cgresources alias for ACM SIGGRAPH and we got into a discussion about how these similar efforts might interact. Clearly, COLLADA is geared more toward long-term persistence of assets than real-time collaboration, and also has the advantage of requiring that plugins are Open-Source. We went back and forth a little bit about how they wouldn’t be directly adaptable, and I had a similar line of conversation with some folks on irc.freenode.net:#verse, a very european-centric group who also brough to light that the European Union asked them to ditch the Uni-Verse project in favor of COLLADA, which is clearly a case of policymakers driving in the right direction, but perhaps down the wrong road…

There are a number of obvious paths which don’t quite lead to an optimal level of integration, such as simply exporting to COLLADA from Verse, who have intentionally left storage very loosely defined in their framework / protocol specification. This is a Good Idea™, but it won’t get us much anywhere in and of itself.

For about the last year or so, I’ve been wondering how practical it would be to use the Archetypes framework in Python to develop introspective interfaces for binary data such as 3d models, much the same as we currently do for images, video files, various application formats such as MS Word, etc… Archetypes, you see, is a very simple prototyping framework which sits atop the Zope Application Server and powers the Plone CMS.

There is a great deal of commercial support, community development, and general momentum beyond Plone, and for this reason I’ve spent a lot of time learning about it over the past 18mo or so, though I haven’t even been able to cover my nasty PowerBook Addiction with the money I’ve pulled in consulting fees. That’s okay for now, I think, because being a dedicated and Very Poor™ Plone Developer might give me an opportunity to help our community shake the ‘built for consultants’ rep we are starting to build in some circles. There is simply no freaking way I could build colladaverse in PHP and go on to lead a happy life, heh.

Okay enough lead-in, here’s my idea. I think that Verse and Delta-V (WebDAV) can share locks for access to versioned assets stored in Zope’s object filesystem or directly in UNIX via xattr and either an SCM/VCS like svn or darcs or even a versioned filesystem extension like wayback. I hear, in fact, that there is work being done on a Versioned Cluster Filesystem with xattr support.

This would already be very similar to how in-browser editors share locks with DAV, and there is a great body of existing work for client access on various platforms, including Novell NetDrive and Enfold Plone Desktop on Win32, Goliath and Finder on MacOSX, and davfs along with probably a hundred alternatives on Free UNIX systems such as GNU/Linux. There are also some cmdline utilities which should be similarly simple to use as FTP or wget, though both of those can also be integrated.

Discussing this with Verse developers and artists, it’s clear that I am not the only person who thinks perhaps an app like Blender, Maya, Max, SOFTIMAGE, Modo, etc… can be a browser replacement for 3d data.

Interested? Of course you are. Here is a growing body of ideas for this project, some of the high performance stuff is pending open-source infrastructure changes, but it’s a nice emerging vision:

http://www.gnubia.net/projects/vertexpath

Much like COLLADA itself, I’d like to map out an architecture or format - in my case a systematized format - for empowering collaboration. Continually progressing technology could make an initial implementation or components of it obselete or inefficient, and yanno, if anyone is actually ever using it, they might be interested in helping to keep things in working order.

Feel free to drop me an e-mail if you want to pitch in or would like to throw some crazy off-the-wall corner-case requirement at me.