← All ideas
  • Published 8 Apr 2025

Blender Projects as multiple files ready for version control

My first steps with blender where to work directly with the meshes and apply modifiers and stuff, then modify the mesh, then add other modifiers... after some time you all know it: you can't go back anymore and you can't revert one thing while you want to keep the other thing.

So you start copying versions of files and as they can grow to large files (I consder mega bytes as big if you think about version control and sharing work). You loose track about what worked and what not and where it was still good and what was bad.

As a developer I'm very much addicted to version control. You change something and you don't know if this refactoring will lead to something? Create a branch commit it and work on this urgent issue you got from the customer.

Why not have a blender project in multiple files? Say you have a keyboard.blend in a separate folder and this files just defines where which file is found. If it is necessary there could be compiled files in a hidden folder but the files itself could be very specific in a readable text format.

It should more or less follow the data structure you see inside a blender file but as text files. But I have to admit that I have no clue where the size from such files is coming from and if some of these files as text would just be too big. The file itself does not have to be a xml file or something else that needs a lot of parsing but it would be fantastic if you could see what got changed in a diff.

I think the possibilities of such a solution are clear to everyone and a lot of people could think the same as far as I have read here.

0%

Development Status: Open

Upvote 0 Downvote 0
thomas67
8 Apr 2025

2 Comments

Lauloque

This is pretty much the same request as Feature Suggestion: Project Version Control ⁠— Right-Click Select and the answer will be pretty much the same: it's not the DCC software's job.

In VFX, animation, and game development, project files are rarely small or self-contained. A few megabytes is trivial, production scenes often involve gigabytes of geometry, caches, and textures. And most importantly: production files are not standalone : they’re part of a network of assets (characters, props, environments, shots), each maintained and versioned independently with ever-changing cross-referencing.

Studios handle this by combining version control, asset management, and structured publishing workflows. Here's a quick look at common tools:

Tool/Concept Purpose & Usage
Git Used for scripts, config files, shader code: anything lightweight and text-based
Git LFS Extends Git to support binary files; works for small teams, but scales poorly.
Perforce Standard in game studios; handles large binary files and team collaboration well
Custom AMS Larger studios (like Pixar, ILM, DreamWorks) build in-house asset management systems
ShotGrid Asset/task tracking, versioning, review & approvals: tightly integrated in pipelines
USD Scene graph format designed for modularity, referencing, and layering across DCCs
Rez Manages software environments and tool versions consistently across pipelines
OpenAssetIO Standardizing asset referencing between DCC apps: still maturing but promising

A few more distinctions:

  • Game studios lean toward solutions like Perforce, which handles binary files and enforces exclusive checkouts.

  • VFX/animation studios prefer task-based workflows with asset publishing and approval systems (ShotGrid, FTrack), often integrating with a database and a structured file system rather than true version control.

So instead of checking files in/out like with Git or Perforce, artists publish versions of assets into the pipeline, and each department picks up those versions as needed. It’s more like a collaborative relay race than direct file editing.

1
jd.knox

Good, detailed response. But don't forget, Maya has (had?) an ASCII file format, which can be used (in certain workflows, e.g., with geometry held outside the main file) for versioning. An argument could be made that adding an ASCII format would be within the DCC's purview.

There have been multiple times I wish Blender had a text-only, native , export format for various workflows over the years. At one point, maybe USD (usda) could fit this use case, but last I checked, it wasn't yet 1-to-1 with Blender's native file format.