Project Management in Blender

Now maybe I’m the only one but when I’m working on a project having good efficient project management is important to me. Whenever I start any sort of project the first thing I do is create a new folder give it a relevant name, and populate it will sub folders that I think I will need: scenes, images, renders, reference, ect. Then I work out of those folders, adding new sub folders as needed.

I find that this is a great way to work because not only does it help you stay organized, but it helps keep things manageable when working on larger projects. I don’t know how many times I’ve gone to assist a classmate or a colleague and they have all their files all over the place and they don’t even know where to look to find them. Or even worse when they have all their files in one folder and you have to spend five minutes searching for the right texture, because it was clumped together with 200 other files and named untitled-005copy2.png

The reason that I am bringing this up is because I find that blender lacks some important project management tools. Now I hate to point out Blenders flaws, because well I love Blender and I know the developers work hard to provide us with this amazing tool. None the less I do believe it is a flaw.

I’ve had experience with Maya, 3DS Max, and XSI, and one thing they all have in common is a built in Project Management system. In these programs when you start working on a new project and want to stay organized you launch the program and go File>New Project. This prompts you to give your project a name, and choose where you want it to be saved. When you do this it creates a folder in the chose directory and fills it with folders.

For example, when creating a new project in XSI.
ProjectName:
Actions
Audio
Backup
Composites
dotXSI
Expressions
FCurve
MatLib
Models
Pictures
Queries
Render_Archives
Render_Pictures
Scenes
Scripts
Simulation
Synoptic
Thumbnails

That’s a lot of folders, and while most of the time you aren’t going to use them all, the benefit of creating the new project is that everything is saved into its appropriate spot. For example, do a render? Saved in Render_Pictures. Bake an AO Map? Saved in Pictures. Bake a smoke simulation? Saved in Simulation. You can even delete all the folders and it will recreate them as it needs them. This makes it easy to find the things you’ve saved and helps keep everything in one (organized) location.

Furthermore, if you go to say add a texture, it opens right up into the Pictures directory. If you go to open a new scene, it opens up into the scenes directory. This makes finding and loading files faster and more efficient.

This system also allows you to load projects. So say you have to make changes to a past project you just go, File>Project Management and select the project from a list of existing projects.

Blender sort of allows for this, as in the User Preferences, you can set the File Paths that Blender uses. However this is fairly manual and not nearly as efficient as it could be. So this is a feature that I think that Blender could really use, because to my knowledge it currently does not. If it does someone please point it out to me, as I would love to make use of it.

Edit:

I found this video that demos what I am talking about in 3DS Max. http://www.youtube.com/watch?v=3NjF0UcPyEU

That’s actually a pretty good idea. It should be toggleable though for sure. Also, It would be nice if it didn’t create folders that it wasn’t gonna use, and just created them as needed.

I agree that it doesn’t need to create the folders that it isn’t going to use. I think it would work best if by default it created a few folders such as, scenes, renders, textures, and maybe a few others, and then just created other ones as it needed them.

I know that right now Blender does have some sort of internal folder system, because if you pack a .blend file and then unpack it, it will create a bunch of folders with everything inside them. You can also see this when you go to link/append a file.

I think this would be possible with a add-on.

The thing is, is there really any place where users can input this sort of information for a script like this? I don’t know of any panels where it’d make sense to put all of this data, except in the files paths, but then you’d have two sets of file path defaults which could get confusing.

Large teams probably have already their standards and a new one would not be used.

I think that there is a similar tools that might be of high interest to many people (even single developers) and is seamless integration with revision control systems like Git.

There wouldn’t really need to be a place for the user to input the information really. If it was set up properly it would just be a few new buttons, File>NewProject and then it prompts you to give your project a name, and then asked where you want to save it, and then it creates all the necessary folders.

Then there would be the File>ProjectManagment button where it give you a list of all the projects you have created so that you can change the current project your working on. Everything else would be done in the background, and the user wouldn’t have the ability to change the file paths. They could always ignore them and save in other directories though.

I’m not a programmer though, so I have no idea how difficult something like this would be to implement.

“Assuming” that solutions are already in place is not a good reason not to implement one (either internal or external support).
The opposite is true too: People use other solutions because there is not a native Blender supported solution… (internal or external)

Blender should (could) be supporting any solution, but atm it simply isn’t set up for project management at all.
It simply “assumes” you use some sort of system yourself.
Other 3D packages do tent to use a project management system.
Like Autodesk Vault and project management functionality.

There is no good version control, rights management, file management, resources sharing or even comments inside projects (both files and/or within .blend files for objects, nodes, parameters, scene states,… et cetera) with potentially external linked information (wiki links, documentation or forum links - databases,… w/e)

There are much more important things for the developers to be working on than this ‘nice to have’ That is why all the effort was put into developing the blender python api. They give the tools for other developers to add these type of extras.

i think the functionality you talked about would be nice,
but an external program to manage .blend files would be nice.

A program that can add/remove textures, nodes, materials, actions, etc… in and out and between .blend files.

I know people will say that blender can do it already, well…
its pretty confusing sometimes when you have lots of textures, that are in different spots on your hdd etc,
what got packed what didnt… even with the script “orphan slayer”(though its nice to have)
it doesnt make this any less confusing, so i think a new smaller redesigned little app
could be made just to manage and cleanup .blend files.
(especially for when you want to share the .blend that is when it needs the most management
to make sure its stripped of unnecessary stuff, and its packed with the right stuff)

Isn’t this what is being worked on by the asset manager project?

I had an idea (and partially coded it) that there should be user defined means to save stuff in the ‘Save as’ menu item so one could save to a database, scm, &etc… but was shot down by Campbell who didn’t much like the idea. I passed the code onto elubie for reference in the asset management project so hopefully it helps some.

My main idea was to set up a system build on top of disco where all the various assets were stored in the distributed file system and everything kind of automagically updates themselves. Instead of having a bunch of library blends lying around you have a bunch of blobs in the database that reference each other using the tagging mechanism and then just fetch whatever is pointed to when needed when loading a scene or whatever. Plus you get free revision control by just pushing a new blob and updating the tags instead of a save/replace operation that gets rid of the last saved version.

Anyhoo, I’ll probably try to implement something like this if I ever get back to working on my renderman exporter again and get some cash together to build a mini-renderfarm to test stuff on.

The Tube project uses this: http://helgaproject.org/
Maybe even celtx

If this is what you are referring to: http://wiki.blender.org/index.php/User:Elubie/AssetBrowser

Then it’s sort of what I am talking about, and it looks like a very neat feature. However I have added a link to a video in my original post that outlines exactly what I’m talking about, but in 3DS Max. You can see the video here if you are interested http://www.youtube.com/watch?v=3NjF0UcPyEU

Blender saves all related files relative to each other. This allows a completely portable project, and let’s you determine your own organization. It’s simple and powerful. I absolutely love it, and I come from a Maya background, which does project management similar to Softimage.

On a side note, where can I find out more about Helga? The website doesn’t even appear to have a download link, so does that mean it’s not exactly ready for general use…?