Render Manager / Render History

Render Manager / Render History
* I prefer to have just a sparse list of current work-in-progress jobs in the window of the render manager.
* As a result I delete jobs which are completed. However, wanting to maintain an archive of (often time consuming) renders which I may wish to revisit and improve, I move some of these from the rubbish bin into sets of archival folders. These get dumped onto an external SBB drive. If required, I can move the folder holding a specific stack into the render history and access the data - deleted recently or long ago - in the render manager.
* This procedure is a bit awkward as documents in the render history are not assigned useful titles. It is necessary to check the info.plist to determine the .jas source of a stack of .png images or to open one of the images (generally hundreds) to "guess" the associated .jas.

* I am aware that the render manager is just a list of pointers but I see no reason to have dozens of obsolete jobs / images cluttering up this list. Renaming folders in the render history breaks the link, so this is a bit frustrating.

:unsure: Can somebody suggest an intuitive and - preferably - simplish alternative which they have devised to support their own work-flow?

* after moving the stack from an external USB on line
Screenshot 2023-03-07 at 18.45.40.png


Screenshot 2023-03-07 at 18.47.28.png

* as saved on a SSD USB external drive
Screenshot 2023-03-07 at 18.49.30.png
 
Have you tried the "Share" button? Not sure if you can edit the list of available options on current macOSes. But organising in "Fotos.app" is probably not the dumbest idea.
 
OK, recording an AppleScript within Cheetah3D isn't possible, but after I use the Render Manager to show the selected Render in the Finder, the folder is selected, and I can use AppleScript Service to open the info.plist file within that folder and pull out the filename as well as the other data in the plist. The finder could then be told to move and rename the folder, even using a popup modal to collect a project name you submit. This sample might provide the enough basics to build what you need done.

Code:
tell application "System Events"
    tell property list file "/Users/jts/Library/Application Support/Cheetah3D/Render History/2023-02-10 22:57:04:667/info.plist"
        set p1 to the value of property list item "filename"
    end tell
end tell

return p1

I haven't experimented with Apple Shortcuts, yet - but I think ShortCuts could be used instead of services.
 
Proposed strategy:

1) use right click in Render List to "Show in Finder"
2) trigger Service to "Archive a C3D Render", ultimately with a keyboard shortcut?
3) script grabs plist from inside the pre-selected finder folder to grab the filename
4) popup/modal window shows a drop list of projects/folders from a preset archive location, also providing an option to create a new project/folder
5) script moves the render folder to the archive folder and renames it using the filename and the appended timestamp from the source folder (OR maybe finding/building a subfolder named after the found filename, and moving the image.png inside of that, renaming the image file after the timestamp? this would store multiple renders from the same file together).
6) script returns control to Cheetah3D
 
Simpler:
1) use right click in Render List to "Show in Finder"
2) trigger Service to "Archive a C3D Render", ultimately with a keyboard shortcut?
3) script grabs plist from inside the pre-selected finder folder to grab the filename
4) script shows standard Choose Folder dialog
5) script finds/builds a subfolder named after the found C3D filename, and moves the image.png inside of that folder, renaming the image file after the timestamp.
6) script returns control to Cheetah3D

Damn it, now my brain wants to build the script just prove it could work.
 
* Thank you, Frank and MonkeyT!
* I think I may have found a practicable solution for my workflow in the meantime, but I will experiment with alternatives.
:) I appreciate your postings.
 
Simpler:
1) use right click in Render List to "Show in Finder"
2) trigger Service to "Archive a C3D Render", ultimately with a keyboard shortcut?
3) script grabs plist from inside the pre-selected finder folder to grab the filename
4) script shows standard Choose Folder dialog
5) script finds/builds a subfolder named after the found C3D filename, and moves the image.png inside of that folder, renaming the image file after the timestamp.
6) script returns control to Cheetah3D

Damn it, now my brain wants to build the script just prove it could work.

Excellent. Similar thoughts here. Being fluent in Javascript would likely be helpful for the most elegant solution. That is not me.

Showing in Finder approach, then an Applescript seems to be a great approach for a small quantity of known images. An on-going effort. Unfortunately, unlike Helmut, I’ve let my Render Manager/History folder get out of control. 300+ GBs of rendered images, some I’d like to keep, most not. Going through that lot in the Render Manager is not going to work for me. Which is why it is 300 GB.

My thinking has been (but I’ve yet to proceed)… an Applescript which steps though the folders, reading plists, adding the metadata to the image files, copying a the full rez images out of C3D’s render folder into a saved images folder and renaming. Then indexing that folder setup with NeoFinder. This will allow for looking at all of the images rendered by a specific project for better culling. After that adventure, I’ll toss all of the images out of the Render Manager and attempt to do a better job of housekeeping… keeping up with test and finished renders.

Thanks Helmut for posing the question.

cheers,
gsb
 
Showing in Finder approach, then an Applescript seems to be a great approach for a small quantity of known images. An on-going effort. Unfortunately, unlike Helmut, I’ve let my Render Manager/History folder get out of control. 300+ GBs of rendered images, some I’d like to keep, most not. Going through that lot in the Render Manager is not going to work for me. Which is why it is 300 GB.
Because the AppleScript Service (I've read they're called "Quick Actions" now) would be triggered in the Finder, it could easily crawl up one folder level and then loop through EVERY entry in the Render History folder, ending up with an archive folder that contained a folder for every C3D Filename, each of which would contain all the timestamped renders from that file.

What it couldn't do is separate projects from each other (unless the file path for those C3D files already had an orderly project-based structure), or only process some of the render folders without manually selecting which folders to archive - especially since the thumbnails are stored inside each render folder.

If the user interface was built to show an OK dialog for each Render before moving on to the next one, it might be able to display the thumbnail using MacOS's quick view tech...
 
Hello,

Because the AppleScript Service (I've read they're called "Quick Actions" now) would be triggered in the Finder, it could easily crawl up one folder level and then loop through EVERY entry in the Render History folder, ending up with an archive folder that contained a folder for every C3D Filename, each of which would contain all the timestamped renders from that file.

Yes, I had forgotten about Service or “Quick Actions” when thinking of triggering a walk through all the folders within the Render History folder. So yes that seems like it would work fine and dandy.

What it couldn't do is separate projects from each other (unless the file path for those C3D files already had an orderly project-based structure), or only process some of the render folders without manually selecting which folders to archive - especially since the thumbnails are stored inside each render folder.

Not sure here… Perhaps I misunderstand what you are saying can’t be done. It seems trivial to, once a project name is parsed from the plist, to check to see if there is an existing folder for the renders from that project in the new archives folder… Then copy the file to that folder if it is there or make a new folder and copy the file there if there isn’t already an archive folder for that project. I would be renaming the image files with the project name and a sequential number E.g. myProject-0001.png

I would be looking to create an archive of images that were in an “archived renders” folder. They would be sorted and located into disparate folders for each C3D project. I already _do_ keep all my C3D projects in their own folder structure with associated resources specific to that project. But I am _not_ thinking of storing all of the archived rendered images in those folders as I would prefer to have all of the archived images, from all projects, in one repository for easier viewing/culling. Perhaps an alias in the projects’ folder to the archived images folder. I have no interest in the thumbnail images, just the full size renders with their appropriate inserted C3D meta data (project file name, full path, render time, render date, etc) extracted from their plist.

Thanks and cheers,
gsb
 
If the original file structure of source files included a consistent spot for project name AND the script was taught how to pull the out, yes, the project to apply could be easily learned. Cheetah3D being a hobby for me, my work habits are nowhere near so consistent.
 
  • Like
Reactions: gsb
My test "Archive C3D Render" QuickAction is almost complete.

Right now, it successfully:
1) checks that there is a selected folder in the Finder
2) checks that this folder is within the "Render History" folder
3) grabs the timestamp value from the name of that folder
4) grabs the ID of that Finder window
5) checks that there is a "info.plist" file inside the selected folder
6) checks that the render came from a saved C3D file (it doesn't care if that file still exists or is in the same location)
7) parses out the C3D file name
8) grabs Archive folder from a Choose Folder interface

Now it has all the information it needs to
A) check the archive folder for a subfolder named after the C3D file and create it, if necessary
B) move the image.png file to the subfolder
C) rename the image.png file using the timestamp

After these steps are performed, the script will continue from that point (executing the following already written steps)
9) send a MacOS notification explaining that the selected render has been archived
10) close the Finder window that shows the Render History
11) return the user to Cheetah3D

All of the checks will display an error message explaining what is wrong, and then return the user to Cheetah3D when the error is dismissed.

The process is to right-click the render and select Show in Finder, hit my keyboard shortcut to trigger the QuickAction, confirm the archive location selection, and be returned to C3D where it all started.

When I complete the testing of the file moving commands, I will save the script, and upload it with installation instructions, including how to set up a keyboard shortcut.

Anyone will be able to open up the file in Automator and see how it works.
 
Alright. This has to be considered a partial success. Because C3D isn't scriptable and this has to managed from the Finder, it takes three steps. Finally, while it archives the render, it can't remove the preview entry from the Render Manager's list. When you quit Cheetah3D and restart it, the archived entries will no longer be there.

First, go to the Render Manager and select a Render to archive. Right-click or control-click on the entry to select the "Show in Finder" link.
Archive_A.jpg
This brings up a Finder window that displays this render file's file collection. All we're interested in is the image file, the plist file and that folder's name.
Archive_B.jpg
Cheetah opens the window with the folder pre-selected: That's how the archive script identifies the one you're interested in. You can select the Service manually using the Services menu or use the Mac's Accessibility features to create a keyboard shortcut.
Archive_C.jpg
When the Service is triggered, it runs some checks to be certain you have selected a Rendering folder. Then, it opens a Chooser window to let you select your archive folder. Once that location is set, it loads as a default. This step CAN be eliminated, but to do so, the archive's location would have to be pre-written into the script.
Archive_D.jpg
When you choose the Archive folder, it lifts the Render's File Name to create an archive folder if needed, then it moves the image.png file into that folder, then it renames that file using the timestamp it lifted from the original Render's Folder. Finally, it moves the render folder (now without the image.png file) to the Trash, closes the Finder Window that C3D, and returns Cheetah3D to be the foreground app once more. It also sends a Notification message showing that the script is completed - which will automatically dismiss itself in a second or two.
Archive_E.jpg

To install the script, uncompress it and move it within your User accounts Library, in the folder called Services. The Library folder is normally invisible, so to open it, use the menu item Users>Go To Folder and enter "/Users/{your username}/Library"

There are more safety precautions I should add (mostly try/catch blocks), but this is performing well for me, and if you have suggestions, feel free to post them. I hope to teach it how to process multiple Renders at the same time, but I don't know how quickly I can get back to it.
 

Attachments

  • Archive C3D Render.zip
    143.5 KB · Views: 98
* Thank you, MonkeyT, for investing extensive time and effort into this tool. I will install this as a service (about which I know, as yet, nothing) and see how I can utilise the function.
:) Much obliged and greetings to Plano, TX from Vienna, EU!
 
Back
Top