NVIDIA Omniverse has two levels of licensing. A free license for up to 2 users, and an enterprise license designed for teams deployed on premises. For me, I would love a third option: a cloud hosted version for individuals, or the ability for me to host my own cloud hosted version where I spin up servers only when I need them. My goal is to manage computer animation projects, with the option of rendering in the cloud.
A Indie Production Studio
I am a hobbyist, but I suspect there is not much difference between a hobbyist and an indie production studio. You don’t have a team, it’s just you. You don’t have much budget, if any. You are trying to make free/cheap tools go as far as possible, growing your investment when you see returns. You are however willing to pay some money if it saves time.
One of the things you build up over time a set of assets that can be reused across projects. Maybe it’s a set of trees and bushes you think look good together. Maybe it’s a set of buildings or furniture. Maybe it’s some assets you purchased from a store. You want to organize this content so you can reuse it easily on new projects. And you want backups.
You also would like final renders to be of “great” quality, without tying up your desktop for the final render. And parallelization from multiple cloud servers for big jobs would be great too. Spin up spot instances in the cloud to reduce costs.
The Omniverse Nucleus server looks very interesting. It gives you a way of hosting assets that you can refer to by URI. That means you can have references to assets that are not dependent on their physical location, unlike an absolute path name on your local computer. This can reduce the pain of maintenance. If you need to take your files somewhere else, path names don’t break. Nice!
It also means you can have a backup strategy for your content hidden from the usage of the service. You know all the files you are working on are in one place. You can use a process behind the scenes then to send a copy (immediately, or according to some schedule) to another location for safe keeping. E.g. run an “rsync” command every 15 minutes to a cloud drive, or auto commit periodically to a remote git repository. (You can do it manually as well of course.)
Nucleus has another nice feature which is “DeepSearch“, which allows you to find assets in your growing repository without knowing exactly what it is. “Find me more trees similar to this one.” Again, this is a Nucleus service feature. An Enterprise Nucleus service. But that is running, and I need to start with crawling.
Nucleus does have a local workstation version where you can run it on your local machine. Things I am unsure about this service however are:
- How much disk space overheads does it add?
- Will the cache service make a second copy because it does not know when content is local or remote?
- How to do backups? (The backup information I found online referred only to the Enterprise version.)
My gut feel of Nucleus Workstation is it is a sampler to get a feel for the Enterprise version before committing to purchase. For example, without a backup story, I am not sure it’s appropriate for production use.
There is another approach. USD supports the concept of “Asset Resolution“. You can plug in your own code to map file pathnames to actual content. For example, I believe Omniverse plugs in a “omniverse:” scheme resolver which it maps to Nucleus server requests. I could write my own “myfiles:” scheme, allowing paths such as “myfiles://library/nature/trees/palm.usd” for files in my “library” (outside my current project). My resolver can then map “library” to a particular directory on disk, and if I move that directory then I don’t have to update all my project USD files.
A concern I have with this approach is to make sure all copies of USD installed on my machine include the reference to my plugin, but otherwise it seems like an attractive solution. Will the Omniverse tools know how to open “myfiles://library/nature/trees/palm.usd”? The next question is browsing the file system. Will the Omniverse tools be able to open the directory and browse around the file system? It would be painful without that.
Another question I face is while I don’t want to spend much money on my hobby, I don’t mind spending some. I just want to control it and have utility pricing where I pay for what I use. For example, I am not sure my trusty desktop will be good enough to render created videos. I cannot use the Iray render pipeline on my computer – it crashes, I suspect due to insufficient memory in my graphics card. Maybe I can rent a cloud server with a bigger GPU card to do the final Iray render. But how does it get access to all my files in this case?
So again, I need good access to remote files, which Nucleus and the caching service seem like a good solution for. Spin up some machines, render a bunch of jobs, shut down the machines. Cloud computing at its finest. There is even Omniverse Farm, designed for allocating work items to compute nodes, integrated into the Omniverse tools.
But, you still need to solve the “how does every cloud server get access to my content” problem. (Surprise, surprise, the Omniverse Farm video suggests using Omniverse Nucleus!)
I have not decided which way to go yet. I have to work through a series of questions.
- How much extra disk space will having a local Nucleus server consume on my computer? How much overhead does it add per asset stored. Will using files in the Nucleus server also get downloaded a cached locally, doubling overheads?
- How do I back up files in my local Nucleus server safely? Without backups, it’s dead in the water. (The Enterprise version talks about backups, not the workstation version.)
- Should *all* project files be put in Nucleus, not just my library of assets? Is that necessary in practice to take advantage of Omniverse Farm where remote machines have to get access to everything?
- Am I allowed to run Nucleus in the cloud, or does that require the (paid) Enterprise license? (My reading indicates its only available for Enterprise customers.)
- Can I implement my own “myfiles:” Asset Resolver scheme and have it work with all the Omniverse tools? Can I open a directory and browse its contents? If so, I can wire together a simple portable file resolver scheme of my own. E.g., access files locally if on my desktop, otherwise fetch files from a cloud hosted web server (with authentication) store and fetch assets in the cloud. I then rsync my local file system to the cloud to keep it up to date. This is important if I want to take advantage of tools like Omniverse Farm on remote servers.
My ultimate goal is to get work done without incurring the Enterprise license cost. It’s not that I am saying it’s a bad deal, it’s just that I cannot afford it as a hobbyist. So I am after a “on the cheap” solution for my personal use. My gut feeling is a “myfiles:” Asset Resolver with some sort of synchronization of my local file system to the cloud for backups and cloud rendering is going to be the best answer.
Of course my ideal would be for an NVIDIA Omniverse cloud hosting solution of Nucleus that I can pay for based on usage instead of a flat fee. As I said, I don’t mind spending some money, I just hesitate paying for an Enterprise license when I will just use it occasionally in my spare time. Or have a “single user license with no concurrency support” that makes it more cost effective for smaller users.
Comments with answers welcome! 😉