Blender Versioning Control
> I developed a GitHub-like versioning system for Blender scenes, designed to track and manage 3D scene evolution through commits, covering changes such as object transforms, materials, and modifiers, without relying on heavy .blend file duplication. The goal was to make version control in a creative 3D workflow feel closer to software engineering: you can save incremental versions, browse a structured history, and restore the entire scene or a single object with precision.
[ KEY FEATURES ]
- Atomic commits: each commit captures a coherent snapshot of the scene state, ensuring changes are recorded as a reliable, self-contained unit rather than partial diffs.
- Merge with comparison & conflict resolution: provides tools to compare versions and resolve conflicts when changes overlap, enabling controlled integration of edits across branches or collaborators.
- Selective restore: restores individual modified elements (e.g., specific objects/materials/modifiers) without rolling back the entire scene, supporting fast iteration and targeted recovery.
- Cloud collaboration: version history is stored on a remote backend (Supabase/Postgres) so commits are consistent across machines and accessible to a group working on the same project workspace.
- Blender add-on integration: the workflow runs directly inside Blender: the add-on handles serialization, commit creation, history browsing, and restore operations through the Blender API.
[ TECH STACK ]
- Language: Python
- Database: Supabase, Postgres