Rhino 8 Mac Autosave Nightmare / where is the Idle Processor?

I am searching for the Idle Processor on Mac, i know, mac “autosaves” every now and then, while nobody truely knows when, and i just ran into a crash and the autosave was 1,5h old. (yeah, fortunately i had an autosave…) I was actively working on the model (no autosave), switched between programms (no autosave), than it crashed when i removed a duplicate icon in the toolbar. Can somebody please tell me where the Idle Processor is? i just want to save remotely every 30 min, i know where i would find it on windows, but i’m lost in the mac settings.

Did you get a crash report when that happened? If so, pls send these reports in, as they help making Rhino more stable.

Pls run _Systeminfo as well and post back the results.

Which duplicate icon you tried to remove when Rhino crashed?

As for autosaving, normally Mac saves changes automatically on every change made to the document, so I am surprised to read it is not doing that on your end. @dan can you advise about this?

just to be sure, did you check in the menu File/Revert to ?

what is that or what does it do on pc?

Hey Gijs, thanks for your quick reply, i sent the crash report already over to McNeel. I accidently duplicated the scale icon and wanted to remove it, before i was changing something in the pop up window, I wanted to add isolate selection there… As you can see there is also “Group Objects”, i feel like the process of customizing the PopUp Toolbar is a little bit fidly.

Bildschirmfoto 2024-07-02 um 14.30.14

Here’s the Systeminfo:

Rhino 8 SR8 2024-6-18 (Rhino 8, 8.8.24170.13002, Git hash:master @ c3cc7c123163b65d85b517aff795627d5b12166b)
License type: Commercial, build 2024-06-18
License details: Cloud Zoo

Apple macOS Version 14.5 (Build 23F79) (Physical RAM: 48GB)
Mac Model Identifier: Mac15,9
Language: en
.NET 7.0.0

Metal GPU Family Apple 7
Metal GPU Family Common 3
Metal GPU Family Mac 2
Graphics processors
Apple M3 Max
Color LCD (1728 x 1117 @ 120.00Hz)
DELL U2718Q (3008 x 1692 @ 60.00Hz)

USB devices
None

Bluetooth devices
None

Third party kernel extensions
None

Third party plugins
/usr/lib/swift/libswiftCore.dylib
/usr/lib/swift/libswiftCoreFoundation.dylib
/usr/lib/swift/libswiftCoreGraphics.dylib
/usr/lib/swift/libswiftCoreImage.dylib
/usr/lib/swift/libswiftDarwin.dylib
/usr/lib/swift/libswiftDispatch.dylib
/usr/lib/swift/libswiftIOKit.dylib
/usr/lib/swift/libswiftMetal.dylib
/usr/lib/swift/libswiftOSLog.dylib
/usr/lib/swift/libswiftObjectiveC.dylib
/usr/lib/swift/libswiftQuartzCore.dylib
/usr/lib/swift/libswiftUniformTypeIdentifiers.dylib
/usr/lib/swift/libswiftXPC.dylib
/usr/lib/swift/libswift_Concurrency.dylib
/usr/lib/swift/libswiftos.dylib
/usr/lib/swift/libswiftsimd.dylib
/usr/lib/swift/libswift_StringProcessing.dylib
/usr/lib/swift/libswift_RegexParser.dylib
/usr/lib/swift/libswiftCryptoTokenKit.dylib
/usr/lib/usd/libusd_ms.dylib
/usr/lib/swift/libswiftCoreAudio.dylib
/usr/lib/swift/libswiftCoreLocation.dylib
/usr/lib/swift/libswiftCoreMedia.dylib
/usr/lib/swift/libswiftCompression.dylib
/usr/lib/swift/libswiftCoreMIDI.dylib
/usr/lib/swift/libswiftAVFoundation.dylib
/usr/lib/swift/libswiftCoreML.dylib
/usr/lib/swift/libswiftFileProvider.dylib
/usr/lib/swift/libswiftIntents.dylib
/usr/lib/swift/libswiftAccelerate.dylib
/usr/lib/swift/libswiftGLKit.dylib
/usr/lib/swift/libswiftGameplayKit.dylib
/usr/lib/swift/libswiftMetalKit.dylib
/usr/lib/swift/libswiftModelIO.dylib
/usr/lib/swift/libswiftSceneKit.dylib
/usr/lib/swift/libswiftSpriteKit.dylib
/usr/lib/swift/libswiftVision.dylib
/usr/lib/swift/libswiftRegexBuilder.dylib
/usr/lib/swift/libswiftDemangle.dylib
/usr/lib/swift/libswiftShazamKit.dylib
/usr/lib/swift/libswiftObservation.dylib
/usr/lib/swift/libswiftVideoToolbox.dylib
/usr/lib/swift/libswiftWebKit.dylib
/usr/lib/swift/libswiftNaturalLanguage.dylib
/usr/lib/swift/libswiftSystem.dylib
/usr/lib/swift/libswiftMapKit.dylib
/usr/lib/log/liblog_network.dylib

Rhino plugins that do not ship with Rhino

Rhino plugins that ship with Rhino
/Applications/Rhino 8.app/Contents/Frameworks/RhMaterialEditor.framework “Renderer Development Kit” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/Commands.rhp “Commands” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/PlugIns/NamedSnapshots.rhp “Snapshots” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RDK_EtoUI.rhp “RDK_EtoUI” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/MeshCommands.rhp “MeshCommands” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoRenderCycles.rhp “Rhino Render” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCycles.rhp “RhinoCycles” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/PlugIns/SectionTools.rhp “SectionTools” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/PlugIns/Displacement.rhp “Displacement” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/PlugIns/PanelingTools.rhp “PanelingTools” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/PlugIns/SolidTools.rhp “SolidTools” 8.8.24170.1002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoDLR_Python.rhp “IronPython” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/GrasshopperPlugin.rhp “Grasshopper” 8.8.24170.13002
/Applications/Rhino 8.app/Contents/Frameworks/RhCore.framework/Resources/ManagedPlugIns/RhinoCodePlugin.rhp “RhinoCodePlugin” 8.8.24170.13002

@encephalon yeah, i did check the File/Revert, it was empty…
The Idle Processor on Windows automatically saves a copy with an incremental suffix in the file location, so it would save your work automatically f.e. every 20 minutes in case you forget or rely to heavy on the autosave from mac…

did you also check this location /Users/YOUR OWN USER/Library/Autosave Information it might contain some unsaved documents.

generally i think that idle function is usually covered by the revert to/versions strange that it is empty did you save this document before? also maybe you have it deactivated?

Yeah, i saved it before, yesterday i thought i saved it under a new name which didn’t happen, for whatever reason… In the Library i found the Autosave file, but as mentioned before, it was kinda old, for something that should save automatically now and then. But i can’t tell what happened, because now, after saving it as a new document it already created a bunch of backups, but if you look at the time stamps, the saving is absolutely random, why does it create a backup after 3 min (?!) and then waits for almost two hours to make the next backup, but then creates another one after 15 min?! For me this makes absolute zero sence, i think it should rather save every 30 minutes, but i don’t know if this is system specific and McNeel just is dependend on MacOS and its behaviour.

No, not exactly. See: When does Rhino for Mac Auto Save a model?

A model will be Auto Saved when you switch to another application and every once in a while. […] Rhino for Mac will not Auto Save your model while you are running a command or otherwise actively changing the model.

Is there a way (scripting?) to replace “once in a while” with lets say a number? like “every 30 mins” for example…

@dan, thanks, so it is saving after about 5 minutes, unless you keep working without any pause, is that what’s happening? Could that be the reason why @dopfer has an autosave that is 1.5 hours old?

No, unfortunately not. This is an macOS level feature and a bit of a black-box.

It’s certainly possible, but somewhat unlikely. If you every switch away from Rhino - click on any other application to focus it - it will trigger an Autosave.

Hi Dan, thanks for your replies. I was quite sure this didn’t work, but is there an API in Rhino that could be reached from the OS itself? So that i could write a .plist-Agent that runs every 30min to save a copy of the actual model in the background? Or is there inside of Rhino for Mac a way to script something likely?
Or is it just going to be my good ol’ Tomato-Clock, reminding me in a set interval to save my model? :sweat_smile:

Ok, and another thing i noticed now: I still am working on the same Model and was checking the Sys-Autsave Folder, i am working on Rhino and switching between Firefox all the time, so there should be Autosaves already, right? No Autosave… Weird, so I saved the Model with a new Suffix, and checked again - there was an Autosave File with a timestamp of about 1 minute prior from when i saved the model manually.
And it seems like it triggers the Autosave almost always when saving the Model as well… Could this be a Sonoma bug?

Sorry for the delayed reply.

Unfortunately, Autosave/Versions is a bit of a “black-box.” Sometimes it serializes the file to a folder like /var/temp/... before hot-swapping (move-overwrite) the file you see in the working folder. Sometimes is does this in the same folder (which is weird; but I’ve seen it). Sometimes the feature manages to archive it in /Users/~/Library/Autosave Information after it is successful; sometimes not. For reasons like these, I’m not a huge fan of this feature, but it does have its partisans and I’m sure it’s saved some people’s bacon once in awhile.

It’s a shame to have to work-around it. The main issue I’d see in working around it from outside Rhino (via AppleScript, or whatever) is you really have to contend with the fact that Rhino can/should only save when you’re not actively changing the document.

I’d suggest you use the RhinoCommon RhinoApp.Idle from a custom plugin, set a timer and call RhinoDoc.SaveAs. You’ll want to make sure you have macOS Autosave/Versions disabled of course.

1 Like

Hi Dan,

thanks for your insights. I think i’ll just stick to trying to save my projects more frequently. What you described is also why there is no idle processor inside rhino for mac?