Add-In for Blender to automatically save files when rendering

Overview

Autosave - Render: Automatically save .blend, .png and readme.txt files when rendering with Blender

Purpose

This Blender Add-On provides an easy way to document & preserve a project's progress over time and to jump back to an arbitrary previous state, if required.

It saves the .blend, .png (render image, optional) and a readme.txt (optional infos) -file in a new, dedicated subdirectory on every rendering.

The new sub-directories are named YYMMDD-hhmmss + an optional short note, located in a base-directory of your choice.

Creating images/animations with Blender is usually a highly iterative trial-and-error process, that can lead into dead ends when using wrong techniques or taking bad artistic choices.

When trying to resume at a former version, it can be difficult to find the matching .blend file for that state of the project.

This add-on can be understood as a basic but efficient source control system for the poor artist.

Installation

  • download the .py file to a location of your choice
  • in Blender: Edit -> Preferences-> Add-on -> Install... and pick the .py file
  • don't forget to activate it by setting the checkmark

Developed & tested under Windows 10 on Blender V2.90.1, 2.93 and 3.0 Alpha. It should work on other OSes and/or in older Blender versions too.

Usage

The user interface appears in the Properties Area -> Output Properties -> Autosave on Render:

UI

  • set the "Autosave on Render" checkmark to save the .blend file before rendering

  • define/create the base-directory that will contain the new subdirectories

  • optionally save a .png file after rendering

  • optionally create a readme.txt. It can be previewed using the OS' file browser, its keywords will be indexed by the OS' search function.

    The content of readme.txt looks like:

    ---- Blender Generated Readme 211007_200350 myproject.blend
    -- Scene Infos:
         Blender V: 2.93.4
             Built: 2021-08-31 23:48:04
        Scene Name: Assets               
     Current Frame: 1
      Resolution %: 100
    View Transform: Filmic
              Look: None
          Exposure: 0.0
             Gamma: 1.0
            Engine: CYCLES
             Samples: 128
         Feature Set: EXPERIMENTAL
              Device: CPU
    -- Metadata Note:
     note from the output properties
    -- Readme Text:
    This is a text from the readme text. 
    It can contain a history of the project or longer annotations.
    ---
    

    The first section contains general infos about the Blender version and parameters used.

    The 2nd section contains the metadata note entered under Output Properties -> Metadata, if any.

    The 3rd section is the content of a document named "readme" from Blender's built-in texteditor, if a text with this name exists. It can contain information concerning this project, its history, keywords etc.

  • optionally enter a short note to be appended to the new directory's name. Free shorthand reminder like "eevee only", "applied" or "!" when used in production etc. Use only characters allowed in your filesystem (Windows: no ":<>" etc).

    This leads to folder names like "211007-145010-with geometry nodes, final version", intended as a quick reminder when revisiting the folder after a while

  • finally start the renderprocess hitting and browse the new subdirectory

Hints

  • the dimensions of the .png file are determined by the output properties
  • this add-on doesn't affect other settings like output paths etc
  • it doesn't make much sense when active while creating animations ( - )
  • manually delete directories if they are not needed
  • -Click on the folder icon opens the base-directory in your OS' file system browser
  • because the .blend file is saved before and the .png file after rendering, rendertime is documented too
  • choose your base-directory on an external or network drive. This may save your live if your SSD dies

Advanced usage

Shift your base-directory into the new sub-directory once you think you achieved significant progress with that render. This transforms the otherwise linear folder structure into a tree, having elaborated versions in its branches.

Optionally rename the parent folder with a speaking name for better orientation when browsing the filesystem later on. The latest and/or best version should then be in the latest & deepest leaf folder.

...unless you give up an idea too soon.

Enjoy!


You might also like...
Addon for Blender 2.8+ that automatically creates NLA tracks for all animations. Useful for GLTF export.
Addon for Blender 2.8+ that automatically creates NLA tracks for all animations. Useful for GLTF export.

PushDownAll An addon for Blender 2.8+ that runs Push Down on all animations, creating NLA tracks for each. This is useful if you have an object with m

This an Anki add on that automatically converts Notion notes into Anki flash cards. Currently in development!

NotionFlash This is an Anki add on in development that will allow automatically convert your Notion study notes into Anki flash cards. The Anki deck c

This is a library which aiming to save all my code about cpp. It will help me to code conveniently.

This is a library which aiming to save all my code about cpp. It will help me to code conveniently.

A "multiclipboards" script for an efficient way to improve the original clipboards which are only able to save one string at a time

A "multiclipboards" script for an efficient way to improve the original clipboards which are only able to save one string at a time. Works on both Windows and Linux.

carrier.py is a Python package/module that's used to save time when programming

carrier.py is a Python package/module that's used to save time when programming, it helps with functions such as 24 and 12 hour time, Discord webhooks, etc

Synthetik Python Mod - A save editor tool for the game Synthetik written in python

Synthetik_Python_Mod A save editor tool for the game Synthetik written in python

addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe

b3d_mocap_import addon for blender to import mocap data from tools like easymocap, frankmocap and Vibe ==================VIBE================== To use

 A small Blender addon for changing an object's local orientation while in edit mode
A small Blender addon for changing an object's local orientation while in edit mode

A small Blender addon for changing an object's local orientation while in edit mode.

A simple armature retargeting tool for Blender

Simple-Retarget-Tool-Blender A simple armature retargeting tool for Blender Update V2: Set Rest Pose to easily apply rest pose. Preset Import/Export.

Comments
  • render_auto_save.py

    render_auto_save.py

    Sorry not an issue ... just if you know about render_auto_save.py addon bundled with any experimental build https://developer.blender.org/diffusion/BAC/browse/master/render_auto_save.py;10ebd1e553b16e599b51b8f1afcfee764365be26

    not a bug 
    opened by mond-cz 5
Releases(v1.3.8)
Owner
Volker
Oh well.
Volker
fast_bss_eval is a fast implementation of the bss_eval metrics for the evaluation of blind source separation.

fast_bss_eval Do you have a zillion BSS audio files to process and it is taking days ? Is your simulation never ending ? Fear no more! fast_bss_eval i

Robin Scheibler 99 Dec 13, 2022
Pampy: The Pattern Matching for Python you always dreamed of.

Pampy: Pattern Matching for Python Pampy is pretty small (150 lines), reasonably fast, and often makes your code more readable and hence easier to rea

Claudio Santini 3.5k Dec 30, 2022
System Design Assignments as part of Arpit's System Design Masterclass

System Design Assignments The repository contains a set of problem statements around Software Architecture and System Design as conducted by Arpit's S

Relog 1.1k Jan 09, 2023
Dump Data from FTDI Serial Port to Binary File on MacOS

Dump Data from FTDI Serial Port to Binary File on MacOS

pandy song 1 Nov 24, 2021
A dead-simple service that notifies you when something goes down.

Totmannschalter Totmannschalter (German for dead man's switch) is a simple service that notifies you when it has not received any message from a servi

1 Dec 20, 2021
It's like Forth but in Python

It's like Forth but written in Python. But I don't actually know for sure since I never programmed in Forth, I only heard that it's some sort of stack-based programming language. Porth is also stack-

Tsoding 619 Dec 21, 2022
Python bindings for the Plex API.

Python-PlexAPI Overview Unofficial Python bindings for the Plex API. Our goal is to match all capabilities of the official Plex Web Client. A few of t

Michael Shepanski 931 Jan 07, 2023
An application for automation of the mining function in the game Alienworlds.IO

alienautomation A Python script made to automate the tidious job of mining on AlienWorlds This script: Automatically opens the browser Automatically l

anonieXdev 42 Dec 03, 2022
Py4J enables Python programs to dynamically access arbitrary Java objects

Py4J Py4J enables Python programs running in a Python interpreter to dynamically access Java objects in a Java Virtual Machine. Methods are called as

Barthelemy Dagenais 1k Jan 02, 2023
More routines for operating on iterables, beyond itertools

More Itertools Python's itertools library is a gem - you can compose elegant solutions for a variety of problems with the functions it provides. In mo

2.8k Jan 02, 2023
Python DSL for writing PDDL

PDDL in Python – Python DSL for writing a PDDL A minimal implementation of a DSL which allows people to write PDDL in python. Based on parsing python’

International Business Machines 21 Nov 22, 2022
Modern robots.txt Parser for Python

Robots Exclusion Protocol Parser for Python Robots.txt parsing in Python. Goals Fetching -- helper utilities for fetching and parsing robots.txts, inc

Moz 176 Dec 16, 2022
A small Blender addon for changing an object's local orientation while in edit mode

A small Blender addon for changing an object's local orientation while in edit mode.

Jonathan Lampel 50 Jan 06, 2023
CBLang is a programming language aiming to fix most of my problems with Python

CBLang A bad programming language made in Python. CBLang is a programming language aiming to fix most of my problems with Python (this means that you

Chadderbox 43 Dec 22, 2022
Generic NDJSON importer for hashlookup server

Generic NDJSON importer for hashlookup server Usage usage: hashlookup-json-importer.py [-h] [-v] [-s SOURCE] [-p PARENT] [--parent-meta PARENT_META [P

hashlookup 2 Jan 19, 2022
A program that takes Python classes and turns them into CSS classes.

PyCSS What is it? PyCSS is a micro-framework to speed up the process of writing bulk CSS classes. How does it do it? With Python!!! First download the

T.R Batt 0 Aug 03, 2021
PREFS is a Python library to store and manage preferences and settings.

PREFS PREFS is a Python library to store and manage preferences and settings. PREFS stores a Python dictionary in a total human-readable file, the PRE

Pat 13 May 26, 2022
Pylexa - Artificial Assistant made with Python

Pylexa - Artificial Assistant made with Python Alexa is a famous artificial assistant used massively across the world. It is a substitute of Alexa whi

\_PROTIK_/ 4 Nov 03, 2021
Wrappers around the most common maya.cmds and maya.api use cases

Maya FunctionSet (maya_fn) A package that decompose core maya.cmds and maya.api features to a set of simple functions. Tests The recommended approach

Ryan Porter 9 Mar 12, 2022
pgvector support for Python

pgvector-python pgvector support for Python Great for online recommendations 🎉 Supports Django, SQLAlchemy, Psycopg 2, Psycopg 3, and asyncpg Install

Andrew Kane 37 Dec 20, 2022