views:

478

answers:

8

Well the subject is the question basically. Are there any version control systems out there for 3d models. An open source approach would be preferred of course.

I am looking for functionality along the lines of subversion however more basic systems would be of interest as well. Basic operations like branching / merging / commit should be available in one form or another.

UPDATE: With open source approach I don't mean free but the option of heavily expanding and customizing the system when needed

UPDATE2: I don't know how to describe this in the best way but the format of the 3d model is not that important. We will be using IFC models and mostly CAD programs. The approach Adam Davis describes is probably what I am looking for.

A: 

What kind of 3D model? A binary blob, or some sort of SVG-esque thing?

Hank Gay
A: 

I was under the impression that SVN is perfect for any kind of project that uses text files. So if your model is made up of text files, then it would be fine.

I don't see how binary data would work, as all version control that I know of makes use of diff management, which uses text comparisons.

Dave Arkell
A: 

Similar to what GingaNinja said, if all you care is management of binary files at different revisions, most revision control systems will work for you. However if you are looking for a tool that will display the changes in the actual images you might be hard pressed to find a recommendation of a tool here. I would start by asking on a graphic artist forums.

jwarzech
A: 

3d models and data are just data files whether their format is text or binary. Version control systems can handle both since often you check in libraries etc, which are binary files.

I'm not quite sure what you mean by "open source approach". Do you mean a free solution? You can get open source projects which have to pay for, depending on your usage, e.g. Qt.

Subversion or CVS would store text or binary models and are both free. Subversion is preferrable to CVS since it can commit multiple files in change sets. On Windows you can use TortoiseSVN, which is an excellent, free tool set.

Nick
A: 

If you use Subversion you must remember to lock (assuming the files are binary, which nearly all 3D model formats are). Other than Subversion and other OSS like it, you might look at Gridiron Flow- the new content/workflow management software from Gridiron Software. John Nack of Adobe gave it a rave review.

Brian Stewart
+2  A: 

This is going to be difficult since most 3D CAD programs do not take into account the possibility of revision, so when you load something and then save it again it may completely re-order the points (there are reasons for this, usually done for performance).

Further, large models represented in a text format are huge files, and will take forever to copy/merge/etc.

There is no current system that will manage this, but there's a really big need in the industry for it.

I would expect such a system would have a model normalizer that converts to and from the desired CAD format and the revision format. It could then handle merges and track changes more easily.

It would also need to output diffs in a form that you could open a "diffed" model in a cad program and the changes are shown in a different color or otherwise highlighted. No one is going to be able to look at a text diff and understand what they're looking at. This diffing program would ultimately need to support understanding that two models are the same even though the 0,0,0 location and rotation are not the same (difficult matching problem) and give the user some interface to allow them to help it when it gets stuck.

You'd probably have to deal with the parts of the model separately (bones, mesh, textures, etc) and have a third file that synchronizes them when converting them to an inclusive model file for use and modification.

It's not a trivial problem... But if you started on something that just handled meshes and open sourced it, you'd probably get a lot of people interested.

Adam Davis
+1  A: 

Although I realize it's a slightly different topic, you might be interested in the answers to the question Version Control for Graphics...

onnodb
A: 

DXF is a text-file standard (similarish to XML) but I don't think merging these types of files is a particularly good idea.

If you wanted to perform a Diff operation on 2 AutoCAD files, you can programmatically address individual objects by their "Handle" - a unique hex identifier. Location, rotation, scaling, colour etc are properties of the object. CAD drawings are basically an object database. I don't know of any product that does this. Change tracking is a viable proposition but merging would be a lot more complicated.

CAD bloke